Карта Бинго - это пять столбцов по пять квадратов в каждом, средний квадрат которых обозначен как «БЕСПЛАТНО». Числа не могут дублироваться.
Пять столбцов заполнены следующим диапазоном чисел:
- 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
источник
join
это псевдоним для,ìmplode
и вы можете поместить назначение в цикл после. Это сократит вашу идею доfor($o=[];25>$i=count($o);$o[$n]=$n)$n=rand(1,15)+($i-$i%5)*3;echo join(",",$o);
Ruby 1.9, 48 символов
источник
Windows PowerShell, 51
54Я не уверен, правильно ли я понял вашу задачу.
Пример выходов:
источник
PHP 106
Я не уверен, что правильно понял проблему ... Можете ли вы дать более подробное объяснение?
источник
R,
6351504945 байтСпасибо Billywob за постоянные предложения и поддержку моей конкурентной борьбы.
источник
cat(sapply(list(15,16:30,31:45,46:60,61:75),sample,5))
Edit: не говоря уже о печати, добавилcat
вместоcat(sapply(split(1:75,ceiling(1:75/15)),sample,5))
. Работает, разбивая вектор1:75
на список, где каждый элемент является вектором длины,15
а не используетсяlist()
для передачи объектовsapply
.labels = FALSE
вариант дляcut
. Потому что все, что имеет значение, это то, что5
в функцию разделения передаются повторяющиеся факторы, независимо от имен.Clojure - 52 символа
Пример вывода (обратите внимание, что он предоставляет отдельные строки в виде подсписков):
источник
Python 2, 84 байта
Если вывод в виде списка, если списки в порядке, есть 75-байтовое решение:
источник