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


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.