लक्ष्य
एक प्रोग्राम या फ़ंक्शन लिखें जो एक सकारात्मक पूर्णांक लेता है n
और अनियमित रूप से लंबाई की पिचों की एक कानूनी श्रृंखला उत्पन्न करता है (इसलिए इसे एक पिच स्ट्रिंग कहा जाता है) n
।
इनपुट
एक गैर-शून्य, सकारात्मक पूर्णांक n
<= 100
उत्पादन
एक यादृच्छिक स्ट्रिंग, या वर्णों की सूची लौटाएं, जो लंबाई के एक संभव, वैध पिच स्ट्रिंग का प्रतिनिधित्व करते हैं n
। उपयोग किए जाने वाले पात्र होंगे:
- बी - बॉल। यदि आप इनमें से 4 को जमा करते हैं, तो बल्लेबाज को चलता किया जाता है और बल्लेबाजी समाप्त होती है।
- एस - हड़ताल। यदि आप इनमें से 3 जमा करते हैं, तो बल्लेबाज आउट हो जाता है और बल्लेबाजी समाप्त हो जाती है।
- एफ - बेईमानी। स्ट्राइक काउंट को भी बढ़ाएगा लेकिन बल्लेबाज को आउट नहीं कर सकता। यानी, आपके पास एक वैध स्ट्रिंग में एक अंतिम बेईमानी नहीं हो सकती है। किसी भी बेईमानी से दो स्ट्राइक / फाउल्स पिछले स्ट्राइक काउंट को नहीं बढ़ाएंगे (बल्लेबाज के पास उस समय 2 स्ट्राइक होंगे और एक थ्री उसे आउट कर देगा)।
- एच - हिट। बल्लेबाज ने एक गेंद को खेल में मारा है और बल्लेबाजी समाप्त हो गई है।
(यह थोड़ा सरल है लेकिन क्या आप इसके बारे में चिंता नहीं करते हैं)
वैध पिच तार वे होते हैं जो स्ट्राइक-आउट, वॉक या हिट में समाप्त होते हैं।
यानी, एक अमान्य पिच स्ट्रिंग या तो है
- 4 गेंद, 3 स्ट्राइक या हिट के बाद अतिरिक्त पिच
- 4 वीं गेंद, 3 स्ट्राइक, या हिट उत्पन्न करने से पहले समाप्त।
नियम
- आपका प्रोग्राम किसी दिए गए इनपुट के लिए सभी संभावित परिणाम तैयार करने में सक्षम होना चाहिए।
- आपका कार्यक्रम समान रूप से यादृच्छिक होना आवश्यक नहीं है लेकिन फिर भी पिछले नियम का पालन करना चाहिए।
- यह कोड-गोल्फ है ।
उदाहरण
Input => Possible Outputs
1 => [H] #Can only end with a hit
2 => [S,H], [B,H], [F,H] #Can only end with a hit
3 => [S,S,S], [F,F,S], [B,B,H], ... #Can now strike-out, otherwise must end with a hit
4 => [B,B,B,B], [S,B,S,S], [B,F,S,S], [B,B,B,H], ... #Can now be walked, struck-out, or get a hit
6 => [S,B,S,B,B,H], [F,F,F,F,F,S], ... #Can now have a full-count (3 balls, 2 strikes) before finishing
Input => Invalid Outputs
1 => [S], [B] #Not enough for a strike-out/walk
2 => [S,S] #Not enough for a strike-out/walk
2 => [H,H] #Batter has already scored a hit
3 => [S,S,F] #Fouls will not cause a strike-out
4 => [S,S,S,H] #Batter has already struck out
5 => [B,B,B,B,B] #Batter has already walked
F
s और S
एक स्ट्राइक-आउट है