빙고 카드는 각각 5 개의 사각형으로 이루어진 5 개의 열로 구성되며 중간 사각형은 “FREE”로 지정됩니다. 숫자는 복제 할 수 없습니다.
5 개의 열은 다음과 같은 숫자 범위로 채워집니다.
- B : 1-15
- I : 16-30
- N : 31-45
- G : 46-60
- O : 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
고정 길이를 제외하고 첫 번째 예와 동일한 출력입니다.
답변
PHP, 86
for($o=[];25>$i=count($o);){$n=rand(1,15)+($i-$i%5)*3;$o[$n]=$n;}echo implode(",",$o);
답변
루비 1.9, 48 자
$><<(0..4).map{|i|[*1..75][15*i,15].sample 5}*?,
답변
Windows PowerShell, 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
답변
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);
문제를 올바르게 이해했는지 잘 모르겠습니다. 자세한 설명을 제공 할 수 있습니까?
답변
R, 63 51 50 49 45 바이트
지속적인 제안과 경쟁에 대한 격려를 해준 Billywob에게 감사드립니다.
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
답변
클로저-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))
답변
파이썬 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)]