Вызов
Я нападаю на похищенную Полуночную Команду, и мне нужно вызвать Каскад Судебного Кости Судного Дня , чтобы защитить себя. Поскольку у меня мало места, мне нужно, чтобы код был максимально коротким.
Алгоритм Catenative Domsday Dice Cascader выглядит следующим образом:
Сначала бросается шестигранный кристалл в Prime Bubble, и результат будет определять, сколько итераций следующего шага будет выполнено.
Начните с шестигранного кубика. На столько раз, сколько выпадет кубик Первого Пузыря, умножьте количество сторон на следующем кристалле на результат броска текущего кристалла. Например, если на вашем первом броске шестигранного кубика ваш бросок равен 2, то у вашего следующего кубика будет 6 * 2 = 12 сторон.
Ваша цель - написать функцию или программу, которая не требует ввода и выводит конечный результат последнего броска кубика. Поскольку это код-гольф , выигрывает самое низкое число байтов на каждом языке!
Примеры
Пример № 1 (взят по ссылке выше):
The Prime Bubble rolls a 6, meaning that the Cascader will iterate six times
#1: We always start with a 6 sided die, and it rolls a 2, so the next die has 6x2=12 sides
#2: The 12 sided die rolls an 8, meaning that the third die has 12x8=96 sides
#3: The 96 sided die rolls a 35, meaning that die 4 has 96x35=3360 sides
#4: The 3360 sided die rolls a 2922, so die 5 has 3360x2922 = 9,817,920 sides
#5: The 9.8 million sided die rolls a 5,101,894, so the final die has 50,089,987,140,480 sides
#6: The 50 trillion sided die rolls a one. Hooray.
Since the last die rolled gave a 1, your function or program should output 1.
Пример № 2
The Prime Bubble rolls a 2, meaning that the Cascader will iterate twice.
#1: We always start with a 6 sided die, and it rolls a 4, so the next die has 6x4 = 24 sides
#2: The 24 sided die rolls a 14
Since the last die rolled gave a 14, your function or program should output 14.
Ответы:
Python 2 ,
7669 байтПопробуйте онлайн!
источник
Perl 6 ,
4337 байт-6 байт благодаря nwellnhof
Попробуйте онлайн!
Блок анонимного кода, который возвращает результат игры в кости конца света.
Объяснение:
источник
Wolfram Language (Mathematica) , 43 байта
Попробуйте онлайн!
источник
J , 21 байт
Попробуйте онлайн!
+6 байт благодаря логической проблеме, обнаруженной FrownyFrog
ПРИМЕЧАНИЕ: у J нет ниладических глаголов. Однако этот глагол будет работать одинаково, независимо от того, какой аргумент вы ему дадите. В примере TIO я звоню с этим
0
, но я мог бы использовать99
или''
просто так.как
1+
добавить один к ...[:?
один рулон п-сторонний штампа (стороны чтение0
кn-1
), где числоn
определяется ...(*1+?)
возьмите текущий аргументy
и?
выполните бросок, чтобы получить случайное число между0
иy-1
.1+
делает это1
доy
, включительно. Наконец,*
создается J-хук, который умножит этоy
снова.^:
сделать это много раз ...(?`])
?
бросьте начальный аргумент, который6
должен определить, сколько раз повторить. Если мы бросим0
(соответствует a1
на Prime Bubble), аргумент будет проходить без изменений.]
Указывает на то, что6
, без изменений, будет исходное значение повторяется(*1+?)
глагол , который определяет значение матрицы для конечного рулона.@6x
присоединяет константный глагол6
, так что мы можем вызвать его с чем угодно, иx
заставляет J использовать расширенное целочисленное вычисление, которое нам нужно для, возможно, огромных чисел.источник
in this case 0 executes the previous verb once, 1 twice, etc
почему это?K (ок) , 32 байта
Решение:
Попробуйте онлайн!
Начните с 6 и «1 выберите 6», итерируйте «1 выберите 6» раз:
Вы можете увидеть итерации, переключив переключатель для сканирования , например
источник
(*).x
->*/x
и{
}/[*a;6,a:1+1?6]
->a{
}/6,a:*1+1?6
Желе , 9 байт
Ссылка niladic, которая дает положительное целое число.
Попробуйте онлайн!
Сохранение байта более очевидным
6X×$6X’¤¡X
Как?
источник
05AB1E , 10 байтов
Случайный выбор, встроенный для больших списков, довольно медленный, поэтому может привести к тайм-ауту, если бросок премьер-пузыря, например, равен 6.
Попробуйте онлайн или попробуйте онлайн с добавленными принтами, чтобы увидеть роллы . (TIO использует устаревшую версию 05AB1E, поскольку она немного быстрее.)
Объяснение:
источник
Желе , 9 байт
Попробуйте онлайн!
Ответ Джонатана Аллана утверждает, что это
, На самом деле, нам не нужно делать такую большую модификацию. Следовательно, это альтернативный подход к ответу Джонатана Аллана, а также место отдыха для моего первоначального неверного 6-байтового символа. :(
источник
Perl 5 , 54 байта
Попробуйте онлайн!
источник
Древесный уголь , 16 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Нажмите 6 в предварительно определенный список.
Повторите случайное количество раз от 1 до 6 ...
... вставить случайное число от 1 до произведения списка в список.
Выведите последний номер, добавленный в список.
Альтернативный подход, также 16 байтов
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Установите количество сторон 6.
Повторите случайное число от 0 до 5 раз ...
... умножить количество сторон на случайное число от 1 до количества сторон.
Выведите случайное число от 1 до количества сторон.
источник
Python 3 , 76 байт
Попробуйте онлайн!
-2 байта благодаря TFeld
источник
R , 43 байта
Попробуйте онлайн!
k
отслеживает текущее количество граней на кристалле. Использует тот факт, чтоT
инициализируется как1
.Я попробовал несколько других вещей, но не смог побить этот простой, прямой подход.
источник
Желе , 10 байт
Попробуйте онлайн!
объяснение
источник
Рубин , 41 байт
Попробуйте онлайн!
объяснение
источник
Java 10,
2149386 байтПопробуйте онлайн или попробуйте онлайн с дополнительными линиями печати, чтобы увидеть шаги .
int
java.math.BigInteger
int
long
BigInteger
int
BigIntegers
Объяснение:
источник
int
int
тип.PHP , 59 байт
расширен:
Не уверен, если я должен включить открытый тег.
На моей машине происходит сбой, если
$s*$r
он слишком большой, поэтому$q>=5
иногда он не печатается ... потому что цифры становятся такими большими. Не уверен в исправлении.источник
Pyth , 14 байт
Попробуйте онлайн!
источник
C # (.NET Core) , 136 байт
Попробуйте онлайн!
Я почти уверен, что это работает, учитывая предположение о бесконечной целочисленной длине, которое нам здесь нравится. Если бы мне пришлось справиться с переполнением, мне бы пришлось создать совершенно другой класс.
источник
System.ArgumentOutOfRangeException: 'maxValue' must be greater than zero
ошибку. Максимальный результат может быть , что больше, чем максимальный размер обоих и , поэтому вам придется использовать вместо этого.int
long
BigIntegers
Юлия 1,0 , 60 байт
b=big(6)
позволяет работать с целыми числами произвольного размера Попробуйте онлайн!источник
Gaia , 13 байт
Попробуйте онлайн!
источник