Виведіть ту саму кількість цифр pi, що і довжина коду


9

Ваше завдання - друкувати xцифри pi, де xваша довжина коду.

Приклади:

Source code (length) -> output
foo!        (4)         3.141
foobar      (6)         3.14159
kinda long  (10)        3.141592653
+++++       (5)         3.1415
123456789   (9)         3.14159265

Ви можете використовувати для визначення кількості цифр, які потрібно надрукувати. Зауважте, що десяткова крапка не вважається цифрою pi - тому код довжини 3 повинен мати вихід , довжиною 4.floor(π/10 * 10code_length) / 10code_length - 13.14

Правила:

  • Довжина вашого коду повинна перевищувати три символи.
  • Ви не можете використовувати будь-які стандартні лазівки.
  • Ви можете використовувати будь-які стандартні дозволені методи виведення.
  • Ви не можете прочитати джерело, щоб визначити довжину коду.
  • Ви не можете використовувати вбудовану константу pi.
  • Pi повинен бути повністю точним і не наближатися.
  • Десяткова крапка у висновку необхідна. Якщо ви вирішили виводити через повернене значення, ви повинні повернути ціле число з плаваючою комою.
  • Мета цього завдання - знайти найкоротше рішення на кожній мові, а не найкоротшу мову для рішення. Не бійтеся публікувати рішення мовою, коли коротше рішення розміщено на тій же мові, якщо ваше рішення використовує інший метод.

... так би це було дійсно чи ні?
Джонатан Аллан

(відредагувати ^ це навіть (округлення))
Джонатан Аллан

"Довжина коду" ← у байтах чи символах?
Лінн

@Lynn Bytes, як завжди.
MD XF

Чи просто 3дозволено?
NoOneIsHere

Відповіді:


3

Japt , 9 4 байти

Коротше, як це можливо, отримати :)

Включає недрукувальну інформацію (канал зворотного рядка, штрих-код 141) після #.

3.#

Перевірте це

У Japt будь-який наступний символ #перетворюється в його код символів і додається до будь-яких цифр або десяткових знаків, які можуть йому передувати, у цьому випадку3.




6

VBA (Excel), 15 байт

MsgBox 4*Atn(1)

Вихід: 3.14159265358979

Я думаю, що це не прийнятно, тому що я гольфував це лише для того, щоб відповідати довжині ІП. Довжина його без гольфу - 17 байт. D:


1
Схоже, вас ще не вітали, тож ласкаво просимо на сайт!
MD XF

О, дякую, пане! : D
remoel

Чи не Atnарктангент? Я не впевнений, чи дозволено це ... просимо OP
JungHwan Min

Я думав, що ОП має на увазі лише вбудований PI. Моє ліжко.
remoel

5

Желе , 6 байт

3;⁽4ƒṾ

Спробуйте в Інтернеті!

Друк 3,14159з дозволеним «європейським» десятковим роздільником, ,.

Як?

3;⁽4ƒṾ - Main link: no arguments
3      - literal 3                3
  ⁽4ƒ  - base 250 literal 14159   14159
 ;     - concatenate              [3,14159]
     Ṿ - unevaluate               ['3', ',', '1', '4', '1', '5', '9']
       - implicit print           3,14159

1
Цей цифровий список виглядає дивним. Я думаю, що там є додаткове ,'.
Джонатан Фрех

1
Можна робити -ÆAær5і використовувати .замість цього ,, але тоді це було б те саме, що і моє рішення Jelly.
Zacharý

4

Python 3 , 64 байти

print("3.%d"%int("SIXW57LUPVBUA10HBQJOL57QLF54UT0U00KIN32O",36))

Спробуйте в Інтернеті!


Еквівалент Python 2 - 60 байт print'3.%d'%int('3p3aqd50r7654t9ywkfkgsm0yx0bikcluxlhsm',36).
Джонатан Аллан

@JonathanAllan python 2 in 59: tio.run/##K6gsycjPM/r/…
primo

@primo виглядає як допис, якщо і коли ...
Джонатан Аллан

1
@JonathanAllan, якщо ви маєте на увазі, коли він знову відкриється, це зараз.
MD XF


4

Десмос , 130 байт

f\left(\right)=\frac{\operatorname{floor}\left(10^{128}\cdot 4\sum_{k=1}^{9^9}\frac{\left(-1\right)^{k+1}}{2k-1}\right)}{10^{128}}

Вихідний код для цього (До якого можна скопіювати і скопіювати всередині і за межами Десмосу) не є оптимальним при створенні за допомогою редактора Desmos, тому кілька байтів пробілу були пронизані, де це можливо.

Це визначає функцію, fяка не бере аргументів, повертає pi, обчислену за допомогою послідовності Григорія до k=9^9 (я не можу підтвердити, що це досить точно, однак я вважаю, що це так, це може бути більш точним з більшим значенням k ) він потім додає результат до 128десяткових знаків, який поряд 3.із довжиною вихідного коду.

Спробуйте в Інтернеті!


Як насправді бачити результат - я лише бачу 3.14159265617, чи дивлюся я в неправильному місці; мені потрібно натиснути кнопку?
Джонатан Аллан

Десмос за замовчуванням не друкує на стільки знаків після коми, але значення все одно має бути точним.
Атако

1
Це невтішно, оскільки виклик - "друкувати ..."
Джонатан Аллан

1
"Десяткова крапка у висновку необхідна. Якщо ви вирішили виводити через повернене значення, ви повинні повернути ціле число з плаваючою комою." що робить це дійсним.
Атако

Я вважаю, що намір цього твердження був не в тому, щоб забезпечити меншу точність, а забезпечити десятковий роздільник. Зверніть увагу, я не думаю, що ваша відповідь погана.
Джонатан Аллан





3

APL, 6 байт

10○⍟-1

Бере уявну частину ln (-1).

Спробуйте в Інтернеті!


Гей, ласкаво просимо @Uriel! Гарний, я не думав про щось подібне (з журналами мінус-цифр), приємна робота!
Zacharý

@ Zacharý спасибі, щойно відмовився від відвідування і не міг не відповісти на це: P
Uriel

2

J , 16 байт

17j15":4*_3 o.1:

Спробуйте в Інтернеті!

Подібно до відповіді VBA. Виходи: 3.141592653589793.


"Ви не можете використовувати вбудований макрос або константу для визначення pi." Смішно, це ваш коментар
Leaky Nun

Ваш вихід 17 байт, а не 16.
ATaco

1
@ATaco точно, це 16 цифр
лише ASCII

@LeakyNun це не так. _3 o.1обчислює атан (1). Як ви, можливо, знали, я добре знаю правила.
Conor O'Brien

2

Math.JS , 17 байт.

     log(-1,e).im

Це 5 провідних просторів

Це обчислює до 15 знаків після коми і неявно друкує його.

Спробуйте в Інтернеті!


Ну, технічно це обчислює уявну частину ln(-1), але оскільки це суто уявне число, це рівнозначно діленню на i.
Zacharý

2

05AB1E , 11 байт

3•∊&SK•)'.ý

Спробуйте в Інтернеті!

COMMAND     # CURRENT STACK         | EXPLANATION
------------#-----------------------+-----------------------------------
3           # [3]                   | Push 3.
 •∊&SK•     # [3, 1415926535]       | Push compressed base-255 number 1415926535.
       )    # [[3,1415926535]]      | Wrap the 2 to an array.
        '.  # [[3,1415926535],'.']  | Push a decimal point.
          ý # ['3.1415926535']      | Join 3 and 1415926535 with a decimal point.

ВИКОРИСТАННЯ Вбудованих будинків:

05AB1E , 4 байти

žq5£

Спробуйте в Інтернеті!


3žs чомусь не працює ...


@ Zacharý я щось пропустив? Чому це особливий xD?
Magic Octopus Urn

Це в моєму імені користувача, а також ви можете додати пояснення?
Zacharý

@ Zacharý HA! Мій мозок переживав усі можливі смішні жарти, пов’язані з ППСГ, і це було порожньо. Я перемагаю лайно.
Magic Octopus Urn

@ Zacharý також, додав.
Magic Octopus Urn

Якщо МІЙ був неявний IO, то не було б ніякої можливості бити E3., я злюся на моїй самості тепер: с.
Zacharý



1

Желе , 6 байт

-ÆAær5

Спробуйте в Інтернеті!

Використовується інший підхід, ніж інші відповіді Джеллі.

Як?

-ÆAє зворотним косинусом -1(який є pi), ær5отримує необхідний розділ. Вийшло так, що округлення еквівалентно усіченню в даному випадку



1

Perl 5, 40 байт

}{$\=$\/~(2*$_)*~$_+2for-130..-2

Потрібна опція командного рядка -pMbignum, рахується як 8.

Використання зразка:

$ perl -pMbignum test.pl < /dev/null
3.141592653589793238462643383279502884197

Прошу вибачення за відсутність посилання TIO, воно, схоже, не підтримує bignum(або неперевершене відкриття дужки ...).


1

МОЙ , 7 байт

’2ō"8↑↵

Спробуйте в Інтернеті!

Як?

  • , зменшення верхньої частини стека ( 0вискакує, якщо порожній, роблячи стек [-1]). (Той самий символ, що і желе)
  • 2, штовхати 2.
  • ō, оскільки у верхній частині стека два, відкиньте 2, поп n, потім натисніть acos(n)(у радіанах це дає пі, цей символ має oнегативний знак на ньому. o(для звичайного тригера) походить від APL).
  • ", спливуйте верхній елемент стека і натисніть його як рядок.
  • 8, штовхати 8.
  • , aвиберіть b, потім натисніть b[:a](Це ще один символ, узятий з APL).
  • , вивести новим рядком (OUTPUT <- STACK).

Потім додайте неявний вихід: P
MD XF

Я зберігаю вірність природі МОЙ, я можу зробити вдосконалену версію з фактичним синтаксисом і, безумовно, з неявним результатом
Zacharý

1

RPL (HP48), 86,5 байт, 87 цифр [Чи враховується це?]

« GROB 8 43
14159265358979323846264338327950288419716939937510582097494459230781640628620899862803
→STR 9 OVER SIZE SUB 2 "." REPL »

GROB - ключове слово із зображенням. Наступні два числа - це ширина та висота. Наступні шістнадцяткові цифри є растровими. Це 1 байт пам’яті на кожні 2 цифри плюс метадані зображення.

Порожня програма « »займає 10 байт. Команда займає 2,5 байти. Поплавок займає 10,5 байт, але якщо воно дорівнює одноцифровому цілому числу, воно може займати 2,5 байти.

HP48 зберігає 4, а не 8 біт у кожному місці пам'яті, тому байт займає 2 послідовних місця (низький ендіан). Часто використовують 20-бітні шматки, і вони займають 2,5 байти (не 3).





0

Excel VBA, 16 байт

Анонімні функції прямого вікна VBE, що не приймає жодного вводу та виводу в будь-яку з STDOUT-програм Excel VBA

Кожен рядок являє собою окрему функцію, яка повертає Pi довжиною 16

?Mid(4*Atn(1),1)
?Str([Acos(-1)])
Debug.?4*Atn(1);
MsgBox[Acos(-1)]
[A1]="=ACOS(-1)"



0

TI-BASIC, 7 байт

round(4tan⁻¹(1),6

round(2sin⁻¹(1),6

round(cos⁻¹(-1),6

Ці три заяви будуть надруковані 3.141593.


Примітка: TI-BASIC - це токенізована мова. Кількість символів не дорівнює кількості байтів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.