बिंगो कार्ड जनरेटर


10

एक बिंगो कार्ड पांच वर्गों में से प्रत्येक के पांच स्तंभ हैं, जिसमें मध्य वर्ग "फ्री" नामित है। नंबर डुप्लिकेट नहीं कर सकते।

पांच कॉलम निम्नलिखित संख्याओं के साथ आबादी वाले हैं:

  • बी: 1-15
  • मैं: 16-30
  • N: 31-45
  • जी: 46-60
  • हे: 61-75

जितना संभव हो उतने वर्णों में, एक स्ट्रिंग का उत्पादन किया जाता है जिसे यादृच्छिक बिंगो कार्ड के रूप में व्याख्या किया जा सकता है। उदाहरण के लिए:

1,2,3,4,5,16,17,18,19,20,31,32,33,34,35,46,47,48,49,50,61,62,63,64,65

यह उदाहरण यादृच्छिक नहीं है ताकि मैं यह दिखा सकूं कि कॉलम 1 1,2,3,4,5 से आबाद है। यह भी ध्यान दें कि मुक्त स्थान को कोई विशेष उपचार नहीं दिया गया है क्योंकि इस स्ट्रिंग की व्याख्या करने वाला फ्रंट-एंड इसे छोड़ देगा।

एक और उदाहरण होगा:

1,16,31,46,61,2,17,32,47,62 ...

इस उदाहरण में, आउटपुट कॉलम के बजाय पंक्ति द्वारा है।

एक तीसरा उदाहरण हो सकता है:

01020304051617181920313233343546474849506162636465

यह निश्चित लंबाई को छोड़कर 1 उदाहरण के समान आउटपुट है।


क्या मैं अकेला हूँ जिसने बिंगो के बारे में कभी नहीं सुना, बल्कि केवल बंशीत बिंगो के बारे में सुना?
जोय

हाँ! बस! मेरा विचार 75 या अधिक शब्दों की एक सूची के साथ आने का है और कार्ड का चयन करें * NEWID द्वारा सूची से आदेश * के साथ कार्ड को पॉप्युलेट करें ()
फिलिप सन्

जवाबों:


2

PHP, 86

for($o=[];25>$i=count($o);){$n=rand(1,15)+($i-$i%5)*3;$o[$n]=$n;}echo implode(",",$o);

PPCG में आपका स्वागत है, अच्छा पहला उत्तर c:
रॉड

धन्यवाद, मैंने अभी बहुत देर से देखा कि यह सवाल 5 साल पुराना है ... xD यकीन नहीं होता कि क्या यह मायने रखता है
chocochaos

joinके लिए एक उपनाम है ìmplodeऔर आप आफ्टर लूप में असेंबलिंग डाल सकते हैं। यह आपके विचार को छोटा कर देगाfor($o=[];25>$i=count($o);$o[$n]=$n)$n=rand(1,15)+($i-$i%5)*3;echo join(",",$o);
Jörg Hülsermann


1

विंडोज पॉवरशेल, ५१ ५४

मुझे यकीन नहीं है कि मैं आपके कार्य को सही ढंग से समझ पाया हूं, हालांकि।

(0..4|%{($x=15*$_+1)..($x+14)|random -c 5})-join','

नमूना आउटपुट:

5,9,1,7,13,26,18,23,17,22,37,33,34,41,44,50,53,59,60,58,73,72,64,69,66
14,10,13,5,1,24,29,26,17,30,34,33,43,41,38,59,50,60,49,56,71,61,72,70,68
3,11,4,5,13,27,16,25,26,22,43,34,42,32,38,51,52,49,58,54,61,70,73,71,62
1,9,13,12,4,23,25,20,26,22,40,33,35,44,37,55,47,52,59,53,74,70,75,64,69
8,6,7,1,9,16,21,23,18,17,35,41,37,38,34,60,50,57,51,59,66,75,73,74,71
11,6,13,4,1,29,27,24,22,18,40,35,41,32,43,51,54,57,58,53,74,71,69,66,64

1

PHP 106

<?$z=1;for($i=0;$i<5;$i++){for($j=0;$j<rand(1,5);$j++){$o[]=rand($z,$z+15);}$z+=15;}echo implode(",", $o);

मुझे यकीन नहीं है कि मैंने समस्या को सही ढंग से समझा ... क्या आप अधिक विस्तृत विवरण प्रदान कर सकते हैं?


आउटपुट गलत है। आपको हमेशा सभी 25 वर्गों का उत्पादन करने की आवश्यकता है :)
chocochaos

1

आर, 63 51 50 49 45 बाइट्स

चल रहे सुझावों के लिए बिलीवोब और मेरी प्रतिस्पर्धी लकीर को प्रोत्साहित करने के लिए धन्यवाद।

cat(sapply(split(n<-1:75,cut(n,5)),sample,5))

५ १४ १५ ३ १ २० ३ 20 २ 27 २ 32 २ 32 ३२ ४५ ४२ ४१ ४४ ५४ ५६ ४६ ६ 64 ६६ ६४ 20३ .१ 20१


मेरे द्वारा उपयोग किया गया सदिश दृष्टिकोण थोड़ा छोटा है। cat(sapply(list(15,16:30,31:45,46:60,61:75),sample,5))संपादित करें: कभी भी छपाई का मन न करें, catइसके बजाय जोड़ा गया
बिलीवोब

@ बिलीवॉब थैंक्स, यह बहुत अच्छा जवाब है! मैंने तब से पाया है कि वह छोटी है। (
सदिश

1
मुड़ता है आप और भी बेहतर कर सकते हैं cat(sapply(split(1:75,ceiling(1:75/15)),sample,5)):। वेक्टर 1:75को एक सूची में विभाजित करके काम करता है जहां प्रत्येक तत्व वस्तुओं को पास करने के लिए 15उपयोग list()करने के बजाय लंबाई का एक वेक्टर है sapply
बिलीवोब

बहुत अच्छा! मेरे पास कुछ सेकंड के लिए आपका समाधान पोस्ट किया गया था, लेकिन फिर मुझे पता चला कि आपको एक बाइट द्वारा कैसे आउटगोल्फ करना है।
rturnbull

हा! और भी बेहतर। लेकिन मुझे नहीं लगता कि आपको इसके लिए labels = FALSEविकल्प की आवश्यकता है cut। क्योंकि यह सब मायने रखता है कि 5विभाजन फ़ंक्शन को दोहराए जाने वाले कारक हैं , नामों की परवाह किए बिना।
बिलीवोब

0

क्लोजर - 52 वर्ण

(map #(take 5(shuffle %))(partition 15(range 1 76)))

उदाहरण आउटपुट (ध्यान दें कि यह उप-सूचियों के रूप में अलग-अलग पंक्तियाँ प्रदान करता है):

((4 1 12 10 2) (25 23 21 16 27) (39 33 45 44 43) (48 53 59 54 47) (73 71 61 64 63))

0

पायथन 2, 84 बाइट्स

from random import*
print sum([sample(range(1+i*15,16+i*15),5)for i in range(5)],[])

अगर सूची के रूप में आउटपुट सूची में ठीक है तो 75 बाइट्स समाधान है:

from random import*
print[sample(range(1+i*15,16+i*15),5)for i in range(5)]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.