Вы недавно создали учетную запись на хитром сайте азартных игр, где за плату в 25 долларов они вернут вам случайную сумму от 0 до 50 долларов. Получив около 5 долларов дважды, вы решаете доказать, что сайт является мошенничеством. Получив доступ к их внешнему брандмауэру с паролем по умолчанию, вы попадаете на их сервер базы данных и узнаете, где хранятся значения для минимальных и максимальных сумм. Вы решаете включить 25 '9 в качестве максимального значения, но получаете сообщение об ошибке, в котором говорится, что максимальное значение должно быть типа' uint64 '. Однако теперь вы заметили, что некоторые цифровые клавиши неправильно вводятся в удаленную консоль. Задача предстает перед вами почти так же, как если бы вы набрали ее на сайте Q + A.
используя только удобно установленные программы для тестирования и выполнения вашего конкретного языка, выведите максимальный размер 64-разрядного целого числа без знака, однако почти все, кроме инструментов программирования, не работает на этом компьютере, оставляя вас без использования цифр 1, 2,4,6,8 - как в исходном коде, так и в литералах вы также заметили, что выполнение программы для каждого дополнительного фрагмента кода занимает значительно более длительное время, поэтому лучше, если вы будете коротким хочу разбогатеть перед розыгрышем!
Соревнование
Напишите программу, которая выводит 18446744073709551615, максимальное значение беззнакового 64-разрядного целого числа, в виде числа или отдельной строки.
Ваш исходный код не может содержать символы «1», «2», «4», «6» или «8»
если ваш язык не имеет 64-разрядного целого числа без знака или его эквивалента, выходные данные могут быть в строковом формате или иным образом, но должны иметь вышеуказанное число.
это код-гольф, поэтому выигрывает самый короткий код на каждом языке!
Ответы:
Пчелиный воск , 3 байта
Объяснение:
Попробуйте онлайн!
Этот язык идеально подходит для этой задачи.
Вот выдержка из страницы Esolang о пчелином воске :
Это в основном неподписанные лонги.
РЕДАКТИРОВАТЬ: Я все еще ожидаю, что Деннис превзойдет меня с 2-байтовым решением.
источник
C, 26 байтов
Печатает
unsigned long
значение.Требуется размер
long
64 бит.источник
print~0
.~0l
должно сработать.sizeof(long) * CHAR_BIT == 64
. Разумное предположение для гольфа, но стоит отметить.CJam (4 байта)
Онлайн демо
Это вычисляет 16 16 - 1, используя встроенную
G
для 16 и оператор декремента(
.источник
64-битный SBCL Common Lisp, 18 байт
most-positive-word
Самое положительное слово на 64-битном компиляторе - 64uint. Это что-то.
источник
Python3 REPL, 12 байт
В REPL:
~-(~-3<<9*7)
За пределами REPL:
print~-(~-3<<9*7)
<-> Python2!Вот еще один в 17 байт:
~-(~-3<<ord("?"))
.объяснение
Ничего особенного. Вот это сломано:
Полученное выражение примерно (но не совсем)
~-(2<<63)
->(2**64)-1
. Я использую оператор головастика дважды здесь. Советы по поводу игры в гольф здесь .Есть также
sys.maxint
в Python2, который можно использовать, но я не буду смотреть на это.repl.it <- ссылка для тестирования.
источник
~-(~
часть глаза первой кошки? Я плохо вижу второго кота ...До нашей эры,
1513 байтСохранено 2 байта благодаря manatwork.
Ничего особенного, просто (16 ^ 16) -1.
источник
(a=9+7)^a-3/3
постоянный ток , 7 байтов
Я думаю, что для языков на основе стека разрешено оставлять ответ в верхней ячейке стека, аналогично возвращаемому значению для функций. Если требуется явная печать, добавьте
p
в конце кода.Попробуйте онлайн!
Он вычисляет (2 64 - 1), используя несколько приемов:
2
задается как число цифр (Z
), найденное в целом числе 10 (A
)64
дается как5E
. По умолчанию dc использует 10 в качестве входного радиуса. Несмотря на это, он может принимать числа в шестнадцатеричном формате, но они будут преобразованы не так, как вы ожидаете. Пример: (5E) по умолчанию = (5E) (основание входа = 10) = (5 * 10 1 ) + (14 (E) * 10 0 ) = 50 + 14 = 641
задается как глубина стека (z
), так как только (2 64 ) присутствовал тогдаАльтернативная история:
Решение в DC: вычисления (16 16 - 1), все еще 7 байтов!
Попробуйте онлайн!
источник
Желе , 4 байта
Попробуйте онлайн!
объяснение
источник
05AB1E , 4 байта
Объяснение:
В заключение! Шанс использовать
05AB1E
встроенные функции для двух сил!Попробуйте онлайн!
Еще один 4-байтовый ответ:
Объяснение:
Попробуйте онлайн!
(если кому-то интересно, этот вопрос старше всех остальных 4-байтовых ответов)
источник
64o<
но я еще не нашел его. Что-то вроде'@Ço<
творческого 64-го нажатия ... Если вам удастся выдвинуть 64 с одним байтом, вы можете получить 3 - это точка, которую я пытаюсь сделать.MATLAB / Octave, 5 байтов
@Sanchises опубликовал отличный ответ на MATLAB, однако этот подход - совершенно другой, поэтому я все равно опубликую его:
В MATLAB
tic
возвращает количество миллисекунд, прошедших с момента открытия программы. Важно, что возвращаемое значение являетсяuint64
типом. Этоuint64
избавляет от необходимости приводить число к типу по умолчанию MATLABsdouble
.Любое число, деленное на 0 в MATLAB, рассматривается как бесконечность, которая для типов без плавающей запятой MATLAB представляет это как максимальное целочисленное значение для этого типа.
Это также работает с Octave, хотя в зависимости от того, какой интерпретатор вы используете, он может также выдавать предупреждение «деление на ноль». Вы можете попробовать код онлайн здесь, хотя, как я уже сказал, вы получаете предупреждение / 0, которое не появляется в MATLAB.
источник
tic==0
при запуске 😉)до н.э. ,
1816 байтисточник
-3/3
чтобы получить-1
?PHP, 16 байт
Это очень похоже на ответ от Ven: https://codegolf.stackexchange.com/a/110751/38505
https://repl.it/Frcy/0
источник
bash
также:printf %u $[~0]
.~0
это-1
, что1111111111111111111111111111111111111111111111111111111111111111
в двоичной системе , в 64 бита, по сравнению с11111111111111111111111111111111
32-бит, а цифры plataform-зависимыми.MATLAB / Octave, 22 байта
Попробуйте онлайн!
eye
используется для создания единичной матрицы (матрица с1
диагональю, в противном случае ноль). Без аргументов это создает1x1
единичную матрицу, или, другими словами, просто a1
. Он принимает необязательный аргумент, который является типом данных («класс» в терминологии MATLAB) созданной матрицы. Таким образом, мы запрашиваем a1
классаuint64
и делим его на ноль, что приводитInf
к MATLAB, который обрезаетсяintmax('uint64')
.Вектор
['~rw}?='-9 '']
оценивается как'uint64'
. Конкатенация пустого символа с вектором на 1 байт короче, чем при использованииchar('~rw}?='-9)
.Причины этого ответа: встроенная
intmax
функция, к сожалению, оценивает максимум 32-разрядного целого числа со знаком. Очевидная следующая опцияuint64()
, которая содержит запрещенные символы. Альтернативой является использование функции, которая принимает строку в качестве типа данных. Очевидными кандидатами являютсяintmax
иcast
, но альтернативы включаютzeros
,ones
иeye
.Примечание: MATLAB по умолчанию устанавливается практически на всех хитрых игровых площадках.
источник
JavaScript,
39383332 байтаРедактировать: 5 байтов сохранено благодаря @Arnauld.
источник
Java 8, 30 байт
Тест онлайн
источник
1846
.BF, 108 байт
Если каждая команда рассматривается как 3 бита, это потенциально составляет 41 байт.
источник
+-<>[].,
Retina ,
2827 байтСохранено 1 байт благодаря Kritixi Lithos
Попробуйте онлайн!
объяснение
Заменяет несуществующий / пустой ввод этой строкой. Эта конкретная строка была сгенерирована "инверсией" этой программы. Кодирует
a
сквознойj
как0
сквозной9
, соответственно.Это
T
этап транслитерации.l
Иd
наборы символов , используемые для транслитерации.l
представляет строчный алфавит,d
это все цифры. Итак, он отображаетсяabcdefghij
обратно0123456789
.источник
d
вместоEO
)C ++, 46 байт.
Впервые играю в гольф, но я вполне доволен собой. С радостью приму любую критику / предложения :)
источник
Brain-Flak ,
64, 62, 58, 54 байтаПопробуйте онлайн!
[Попробуйте онлайн!]
Четыре байта сохранены благодаря @Riley!
Объяснение:
Для записи я попытался нажать 32 и увеличить в четыре раза, но это тот же счетчик байтов.
источник
()
s из 64, чтобы выдвинуть 1:((((((())()()()){}){}){}){})
((((((())()()()){}){}){}){}[()]){({}<(({}){}())>[()])}{}
((((((<>)()()()()){}){}){}){}){({}<(({}){}())>[()])}{}
N*2+1
вместо(N+1)*2-1
?C # 6, 31 байт
Почти так же, как Java.
C # 5, 56 байт
источник
Func<ulong>
:()=>~0UL;
Func<int, ulong>
для сохранения байта:_=>~0UL;
и я думаю, что он все еще будет действителен.Forth (gforth),
1197 байтовПопробуйте онлайн
true
так же, как-1
.U.
печатает число в виде целого числа без знака.Это работает на TIO, возможно, потому что он имеет 64-битную архитектуру? Я не уверен.
-1 U.
Например, если я запускаю repl.it, я получаю 2 ** 32-1. Если repl.it поддерживает целые числа двойной длины,UD.
вместо них будет использоваться их вывод .источник
-3 3 / U.
true U.
(также ритмы красиво)true
, потому что я так привык использовать0
и1
. Спасибо.Python3 REPL, 11 байт
Как это работает
источник
PowerShell ,
2914 байтПопробуйте онлайн!
Спасибо @ n0rd за то, что играли в гольф пополам.
Это использует встроенный унарный
PB
оператор, который в основном функционирует как «умножить предыдущее число на1125899906842624
» (т. Е. Сколько байтов в пебибайте). Это в сочетании с гексом0xC000
, или49152
, так49152 pebibytes
. Мы делим это на3
, уступая18446744073709551616
, и вычитаем,3/3
чтобы получить окончательное значение.источник
"0x$(7-3)000PB-9/9"|iex
0xC000PB/3-3/3
PB
вот так. Благодарность!JavaScript (ES6), 50 байт
источник
'䠎ᴐIF╏ɧ'
и убрать-27
сборка x64, 7 байт
шестнадцатеричный (в сборе): 4831C048FFC8C3
разобрал, прокомментировал:
XOR RAX,RAX ;Zero the value of 64 bit register RAX DEC RAX ;Decrement the value of RAX RET ;Return this value
RAX является 64-битным регистром и чаще всего используется для возврата целочисленных аргументов (например, C). При уменьшении 1 его значение изменяется от 0 до ... 2 ^ 64-1, что точно необходимо.
Хотя собранный двоичный файл содержит единицы, четверки и восьмерки, сборка - нет, но собранный файл считается в сборке, так что же он считается? Ой, моя голова.
Кроме того, выход является возвращаемым значением в этом случае.
источник
Brain-Flak ,
223193 байтаВключает +1 для
-A
-30 благодаря DJMcMayhem
Попробуйте онлайн!
Это только выдвинуло значения ASCII и напечатало как символы.
Для справки, требуется 338 байтов, чтобы сгенерировать фактическое число, используя метагольфер Integer .
Попробуйте онлайн!
источник
[]
. Например:((((((((((((((((((((((((()()()){}){}()){}){}())[()()()()])[][]())[[]()()])[]))()()()())[[]()()])[][()])[()()()()])()()()())[(()()()){}()])()()()()))()()())[()])[()()]))()()()())[(()()()){}()])
(возможно, больше я-A
так как стандартный вызов уже включает-f
, так что-fA
вместо этого нужно сделать только один[]
что посмотрю на это, когда у меня будет шанс. Спасибо.MATL, 8 байт
Возможно, это можно улучшить, но я пока не знаком со строками и типами в MATL.
Попробуйте это на matl.suever.net
Объяснение:
источник
cast
был использован, но это имеет смысл, еслиtypecast
используется. Спасибо за разъяснение этого.Javascript 55 байт
код генерирует и затем предупреждает строку 18446744073709551615, используя побитовые операции
590300 >> 5 18446
59530-3 >> 3 7440
7370955
3 * 59 * 73 >> 3 1615
источник
2588673709551615
для меня ...alert(0xafebff0+'7370955'+(3*59*73>>3))
работает нормальноSwift, 8 байт
внешняя игровая площадка / repl - 15 байт
источник
TI-Basic, 10 байтов
источник