Уявлення подвійної точності десяткової може гарантувати лише точність 15 знаків після коми, таким чином, пі приблизний як:
3.141592653589793
Ви можете бачити, що цифра 3
знаходиться в позиціях 1, 10, 16
, цифра 1
знаходиться в позиціях 2, 4
і т.д.
Виклик
Ваше завдання - створити програму або функцію, яка створює випадкове подвійне число між 0 і 1 і відображає значення цього числа на значення pi. Ви робите це, розміщуючи різні цифри у випадкових числах у тому місці, яке має цифра у 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-значення та / або RNG, ви можете ввести жорсткий код Pi та взяти випадкове число як вхідне. Ви не можете жорстко кодувати випадкове число або приймати Pi як вхідний.
- І значення жорсткого коду для Pi, і 15 випадкових цифр (ви можете пропустити,
0.
оскільки знаєте, що це буде від 0 до 1), будуть включені до числа байтів. - Якщо ваша мова не має необхідної точності, ви можете використовувати меншу точність при наступних обмеженнях
- Цифри Pi повинні бути точними до точності, яку ви маєте
- Ви не можете вивести більше значень, ніж гарантовано правильних, тобто ви не можете вивести 15 цифр, якщо точність дозволяє лише 8 точних десяткових знаків.
- Твердокодированное значення Pi вважатиметься 16 байтами (вам не знадобиться десяткова крапка), навіть якщо ваша програма підтримує лише 8 цифр.
- Вхідне значення для випадкового числа вважатиметься 15 байтами (вам не потрібно
0.
. Це тому, що мови з низькою точністю не повинні мати несправедливої переваги. - Програма повинна підтримувати точність (принаймні) 5 десяткових знаків.
- Редагувати: щоб підтвердити відповідь: Довільне число повинно бути надруковано якось, але цю операцію не потрібно включати в кількість байтів. Наприклад, якщо можливо вставити а
print r
в кінці сценарію, ця частина не збільшить бал. - Ви не можете відняти байти, якщо це частина іншої необхідної операції. Тобто, якщо код є
print pi, r
, то ви можете тільки відняти, r
. - Якщо вам доведеться вставити частини в декілька місць у коді, будь ласка, включіть обидві версії (та, яка друкує випадкове число, і та, яка не містить коментаря, наприклад:
_p
і_oNo
потрібні для друку випадкового числа._p
Робить xxx і_oNo
робить yyy.,_p
і_oNo
не буде включено до підрахунку байтів.
Найкоротший код виграти в байтах.
Таблиця лідерів
Фрагмент стека внизу цієї публікації генерує каталог з відповідей а) як список найкоротших варіантів для кожної мови та б) як загальний таблиця лідерів.
Щоб переконатися, що ваша відповідь відображається, будь ласка, почніть свою відповідь із заголовка, використовуючи наступний шаблон Markdown:
## 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
?