Предположим, у вас есть две шестигранные кости. Бросьте пару 100 раз, вычисляя сумму каждой пары. Распечатайте количество раз, когда каждая сумма произошла. Если сумма никогда не была выброшена, вы должны указать ноль или какой-либо способ определить, что эта конкретная сумма никогда не выпадала.
Пример вывода: [3, 3, 9, 11, 15, 15, 11, 15, 7, 8, 3]
Количество раз, когда сумма была выброшена, представлена в индексе сумм - 2
В этом примере сумма в два раза катилась 3 раза ([2-2]), сумма в три раза 3 ([3-2]), сумма в четыре раза 9 ([4-2]) и т. Д. на. Неважно, какие отдельные броски костей достигнут суммы (5 и 2 будут считаться равными сумме 6 и 1).
«Уродливые» выходные данные хороши (множество конечных нулей, дополнительный вывод, странные способы представления данных и т. Д.), Пока вы объясняете, как данные должны читаться.
источник
0
в списке или ее можно опустить?extra output
но мы все еще не можем вывести бесконечный список случайных чисел и сказать, что он случайно появляется где-то там, верно? Это стандартная лазейка.Ответы:
Желе ,
1312 байтНиладическая ссылка. Выходной формат представляет собой список списков
[value, count]
.(Нулевые броски означают, что такой записи нет в выходных данных - например, выходные данные
[[6, 12], [7, 74], [8, 14]]
идентифицировали бы, что были свернуты только суммы из шести, семи и восьми.)Попробуйте онлайн!
Как?
источник
Python 2 ,
847776 байт-7 байт благодаря @JonathanAllan
-1 байт благодаря @FelipeNardiBatista
Попробуйте онлайн!
Выход имеет два ведущих нуля
источник
05AB1E ,
2119 байт-2 байта благодаря @Emigna
Попробуйте онлайн!
источник
TÝÌтF6Lã.RO¸ì}{γ€g<
экономит 2 байта.Mathematica, 50 байтов
Простая реализация. Если какая-либо сумма никогда не будет достигнута, то
0
она исключается из списка.источник
MATL , 17 байт
Выходные данные представляют собой список из 11 чисел (некоторые из них, возможно, 0), разделенных пробелами, указывающих количество раз для каждой пары от 2 до 12.
Попробуйте онлайн!
Для сравнения, теоретическое среднее число раз, которое каждая пара появится в среднем, может быть вычислено как
6:gtY+36/100*
.При увеличении количества валков полученные значения приближаются к теоретическим. См. Например, полученные и теоретические значения с 10000 рулонов.
источник
CJam,
1820 байтовПопробуйте онлайн!
источник
e`
занимает всего два байта.Perl 6 , 30 байт
(^6).pick
случайное число от нуля до пяти.xx 100
составляет список из сотен элементов таких чисел.xx 2
производит два таких списка.[Z+]
сжимает эти два списка с добавлением, создавая список из 100 элементов с двумя кубиками. Наконец,bag
помещает этот список в сумку, представляющую собой коллекцию с множественностью. Пример вывода REPL:Это означает, что 1, 9 и 0 встречались четыре раза каждый, четыре происходили четырнадцать раз и т. Д. Поскольку «кости» в этом коде производят числа от 0 до 5, добавьте два к каждому из этих чисел, чтобы получить броски пары стандартная 1-6 игральных костей произведет.
источник
Р ,
4537 байт-7 байт благодаря Jarko Dubbledam
Возвращает объект таблицы элементов и количество каждого из них. Исключает любые значения, которые не встречались.
Попробуйте онлайн!
старая версия:
sample(6,200,T)
образцы 200 раз от1:6
с заменой, затем создает матрицу из 2 строк, суммирует столбцы, затем сортирует их в порядке возрастания и вычисляет длины серий. Опускает любые суммы костей, которые не достигнуты.Возвращает
rle
объект, который печатается по умолчанию в следующем формате:где
lengths
подсчета иvalues
суммы костей.TIO Link
источник
PHP, 53 байта
печатает ассоциативный массив. ключ - результат двух кубиков, а значение - количество этих результатов.
Попробуйте онлайн!
источник
If a sum was never rolled, you must include a zero or some way to identify that that particular sum was never rolled.
JavaScript (ES6), 72 байта
Видя, что «некрасивый» вывод разрешен, следующий будет выводить массив, содержащий количество раз, когда каждый счет из 2-12 был свернут, с дополнительными 89 элементами, установленными в 0.
источник
СИЛОС , 99 байт
Попробуйте онлайн!
Бросает кости и сохраняет их в первых 11 точках кучи, а затем просто перебирает кучу, печатая каждый счетчик. Это одно из первых зарегистрированных применений ключевого слова rand в сочетании с оператором присваивания.
Стоит отметить, что может быть сделано несколько модификаций для вывода гистограммы рулонов.
К сожалению, он должен быть запущен из автономного переводчика .
источник
Эликсир,
157118 байтПробовал что-то сложнее, чем желе.
Объяснение:
y
будет переменной с суммой броска.Должен называться как
p.(p,[0,0,0,0,0,0,0,0,0,0,0,0,0])
. Он выдаст предупреждение, но вернет нужный массив с 13 элементами, первые 2 следует игнорировать.источник
Java 8, 104 байта
Лямбда, возвращающая
int[]
частоты. ПрисвоитьSupplier<int[]>
.Попробуйте онлайн
Неуправляемая лямбда
источник
q / kdb +,
312825 байтРешение:
Пример:
Объяснение:
Бросьте кости
100?6
, снова бросьте кости и сложите векторы. Затем посмотрите, где каждый результат соответствует диапазону 0..10, затем суммируйте все истины в каждом списке:Примечания:
«Гольф» в основном заменяет
q
ключевые слова наk
эквиваленты, а именноeach
иtil
.источник
QBIC , 45 байт
Объяснение:
источник
APL, 14 байтов
Представляет данные в виде таблицы, в которой левый столбец представляет сумму, а правый - количество вхождений.
Разъяснения
Предыдущий пост:
APL,
3631 байт5 байтов сохранено благодаря @ Adám
объяснение
Как
11⍴⍉⌽f
работает?источник
(11⍴⍉⌽f)[⍋11⍴⍉f←,∘⍴⌸+/?100 2⍴6]
,∘⍴⌸+/?100 2⍴6
должно быть достаточно, поскольку он перечисляет встречающиеся суммы (таким образом, указывая, какие из них отсутствуют) и их частоты (поэтому сортировка не требуется).> <> , 93 байта
Попробуйте онлайн или посмотрите на рыбной площадке !
Уродливый формат вывода представляет собой последовательность чисел, разделенных символами новой строки, где n- е число говорит, сколько раз сумма была n - это уродливо, потому что оно печатает навсегда для всех натуральных чисел n , хотя большинство строк будет равно 0. ( Ссылка TIO изменяется, чтобы остановить после n = 12, за счет 5 байтов.)
Рыбная площадка довольно медленная - требуется около трех с половиной минут, чтобы напечатать до n = 12 на максимальной скорости, поэтому вы можете изменить ее, чтобы бросать 10 пар костей вместо 100, изменив
aa*
в 5-й строке значениеa
(то есть,a
следуют два пробела).Случайные броски костей выполняются этим битом:
x
s изменить направление рыбы в случайном порядке. Предполагая, что это реализовано с равными вероятностями, ясно, что результат броска матрицы является равномерным распределением по симметрии.После того, как рыба бросила 100 пар костей, она подсчитывает, сколько раз сумма была n с этим битом (для ясности развернута и начинается в верхнем левом углу):
Мы держим n в начале стека и используем регистр для подсчета количества раз, когда появляется n .
источник
Javascript
8575 символовСпасибо, Шегги!
история
85
источник
a=[];for(i=100;i--;)a[o=(f=_=>Math.random()*6|0)()+f()]=(a[o]|0)+1;alert(a)
. (Примечание: в этом случае IIFE не сохраняет и не стоит ни одного байта, но бывают случаи, когда он может сэкономить вам байт или 2, поэтому удобно иметь его в своей «сумке для гольфа».)|0
это решение для игры в гольф для "Math.floor ()", а также для "преобразования неопределенного в 0".Perl 5 , 64 байта
Попробуйте онлайн!
Выходной формат:
<sum> <# rolls>
Для сумм с нулевыми бросками столбец списков пуст.
источник
PHP, 65 байт
печатает ведущий
0_
а затем вхождения от 2 до 12 с последующим подчеркиванием каждый.Запустите
-nr
или попробуйте онлайн .источник
К (ок) ,
2422 байтаРешение:
Попробуйте онлайн!
Объяснение:
k
«порт» моегоq
решения. Оценка происходит справа налево, отсюда и квадратные скобки (!
)Редактирование:
источник
Pyth, 21 байт
Выводит каждый шаг в создании бросков, затем выводит частоту каждой суммы 0 - 10 в отдельной строке.
источник
Java (OpenJDK 8) , 95 байт
Попробуйте онлайн!
Пояснения
источник