Представление десятичной дроби с двойной точностью может гарантировать точность только до 15 десятичных разрядов, таким образом, число пи приблизительно:
3.141592653589793
Вы можете видеть, что цифра 3
в позициях 1, 10, 16
, цифра 1
в позициях 2, 4
и т. Д.
Вызов
Ваша задача - создать программу или функцию, которая создает случайное двойное число от 0 до 1 и отображает значения этого числа на значение pi. Вы делаете это, помещая различные цифры в случайные числа в положение, которое цифра имеет в пи. Если цифра не найдена в pi, вы пропустите ее, и каждая цифра в pi, которой нет в случайном числе, будет представлена как x
. Каждое значение можно использовать только один раз, начиная слева.
Несколько примеров, вероятно, прояснят это. В следующих примерах первое число равно pi, второе - случайное число, а последнее - желаемое значение.
3.141592653589793
0.111111111111111
x.1x1xxxxxxxxxxxx
3.141592653589793
0.531000000000000
3.1xx5xxxxxxxxxxx
3.141592653589793
0.123456789123456
3.141592653x8x7xx
3.141592653589793
0.967552381459391
3.14159265358979x
Правила:
- Функция не должна принимать никаких входных данных (возможное исключение объяснено в пуле 3)
- Выходные данные должны состоять только из выходной строки с необязательным символом новой строки (также допускается один завершающий пробел)
- Если ваша программа не имеет встроенного значения Пи и / или ГСЧ, вы можете жестко закодировать Пи и принять случайное число в качестве входного. Вы не можете жестко закодировать случайное число или взять Pi в качестве ввода.
- И жестко запрограммированное значение для Pi, и 15 случайных цифр (вы можете пропустить,
0.
поскольку вы знаете, что оно будет между 0 и 1), будут включены в число байтов. - Если ваш язык не обладает необходимой точностью, вы можете использовать меньшую точность при следующих ограничениях
- Цифры Пи должны быть точными с точностью до вашей
- Вы не можете вывести больше значений, чем вы гарантированно получите правильно, т.е. вы не можете вывести 15 цифр, если точность допускает только 8 точных десятичных знаков.
- Значение Pi в жестком коде будет считаться 16 байтами (вам не требуется десятичная точка), даже если ваша программа поддерживает только 8 цифр.
- Входное значение для случайного числа будет считаться 15 байтами (вам не нужно
0.
. Это потому, что языки с низкой точностью не должны иметь несправедливого преимущества. - Программа должна поддерживать точность до 5 десятичных знаков (как минимум).
- Редактировать: для проверки ответа: случайное число должно быть напечатано каким-либо образом, но эта операция не должна быть включена в число байтов. Так, например, если есть возможность вставить
print r
в конец скрипта, эта часть не будет увеличивать счет. - Вы не можете вычесть байты, если это часть другой необходимой операции. Т.е. если код есть
print pi, r
, то можно только вычесть, r
. - Если вам нужно вставить части в нескольких местах кода, пожалуйста, включите обе версии (ту, которая печатает случайное число, и ту, которая не содержит комментариев, таких как:
_p
и_oNo
которые необходимы для печати случайного числа._p
Делает xxx и_oNo
делает гггг_p
и_oNo
не будут включены в число байтов.
Самый короткий код в байтах побеждает.
Leaderboard
Фрагмент стека в нижней части этого поста создает каталог из ответов а) в виде списка кратчайшего решения для каждого языка и б) в качестве общей таблицы лидеров.
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
## Language Name, N bytes
где N
размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Если вы хотите включить в заголовок несколько чисел (например, потому что ваш результат равен сумме двух файлов или вы хотите перечислить штрафы за флаг интерпретатора отдельно), убедитесь, что фактический результат является последним числом в заголовке:
## Perl, 43 + 2 (-p flag) = 45 bytes
Вы также можете сделать имя языка ссылкой, которая будет отображаться во фрагменте кода:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
0 < random < 1
или 0 <= random <= 1
?