বিঙ্গো কার্ড জেনারেটর


10

একটি বিঙ্গো কার্ড মাঝারি বর্গক্ষেত্রকে "ফ্রি" মনোনীত করে পাঁচটি স্কোয়ারের পাঁচটি কলাম। নম্বরগুলি সদৃশ করতে পারে না।

পাঁচটি কলাম নিম্নলিখিত সংখ্যার বিস্তৃত আকারে পপুলেশন করা হয়েছে:

  • খ: 1-15
  • আমি: 16-30
  • এন: 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 বা ততোধিক শব্দের একটি তালিকা নিয়ে এসে কার্ডটি পপুলেট করুন NEW * () বাই অর্ডার তালিকা থেকে নির্বাচন করুন
ফিলিপ সেন

উত্তর:


2

পিএইচপি, 86

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

পিপিসিজিতে আপনাকে স্বাগতম, প্রথম প্রথম উত্তরের উত্তর সি:
রড করুন

ধন্যবাদ, আমি এই মুহূর্তে কিছুটা দেরিতে লক্ষ্য করেছি যে এই প্রশ্নটি 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);
তুলবে

1

রুবি 1.9, 48 টি অক্ষর

$><<(0..4).map{|i|[*1..75][15*i,15].sample 5}*?,

1

উইন্ডোজ পাওয়ারশেল, 51 54

যদিও আমি আপনার কাজটি সঠিকভাবে বুঝতে পেরেছি কিনা তা নিশ্চিত নই।

(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

পিএইচপি 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 স্কোয়ার আউটপুট করা দরকার :)
চকোচোস

1

আর, 63 51 50 49 45 বাইট

চলমান পরামর্শ এবং আমার প্রতিযোগিতামূলক ধারাটিকে উত্সাহিত করার জন্য বিলিউবকে ধন্যবাদ

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

5 14 15 3 1 20 30 28 18 27 32 45 42 43 41 49 54 50 56 47 68 66 64 73 71


ভেক্টরাইজড এপ্রোচটি আমি চেষ্টা করেছি কিছুটা খাটো। cat(sapply(list(15,16:30,31:45,46:60,61:75),sample,5))সম্পাদনা করুন: মুদ্রণটিকে কিছু মনে করবেন না, catপরিবর্তে যুক্ত হয়েছে
বিলিউব

@ বিলিউব ধন্যবাদ, এটি দুর্দান্ত উত্তর! এরপরে আমি এমন একটি খুঁজে পেয়েছি যা এমনকি আরও খাটো। (ভেক্টরাইজড নয়, দুর্ভাগ্যক্রমে))
rturnbull

1
সক্রিয় আপনি এমনকি আরো ভালো করতে পারেন: cat(sapply(split(1:75,ceiling(1:75/15)),sample,5))। ভেক্টরকে 1:75একটি তালিকায় বিভক্ত করে কাজ করে যেখানে প্রতিটি উপাদানকে বস্তুগুলিতে পাস করার 15পরিবর্তে দৈর্ঘ্যের ভেক্টর । list()sapply
বিলিওব

খুব সুন্দর! আমি আপনার সমাধানটি কয়েক সেকেন্ডের জন্য পোস্ট করেছি, তবে তারপরে আমি বুঝতে পেরেছিলাম কীভাবে আপনাকে একক বাইট দ্বারা আউটপল্ফ করা যায়।
rturnbull

Hah! আর ভালো. তবে আমি মনে করি না যে আপনার পক্ষে 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)]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.