Dane wyjściowe mają taką samą liczbę cyfr pi, jak długość kodu

9

Wyzwanie polega na wydrukowaniu xcyfr liczby pi, gdzie xjest długość kodu.

Przykłady:

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

Możesz użyć do określenia liczby cyfr, które musisz wydrukować. Zauważ, że przecinek dziesiętny nie jest liczony jako cyfra pi - więc kod o długości 3 powinien mieć wynik o długości 4.floor(π/10 * 10code_length) / 10code_length - 13.14

Zasady:

  • Długość kodu musi być większa niż trzy znaki.
  • Nie możesz używać żadnych standardowych luk.
  • Możesz użyć dowolnej standardowej dozwolonej metody wyjściowej.
  • Nie możesz odczytać źródła, aby określić długość kodu.
  • Nie możesz używać wbudowanej stałej pi.
  • Pi musi być całkowicie dokładne i nie przybliżone.
  • Konieczny jest przecinek dziesiętny na wyjściu. Jeśli wybierzesz wyjście za pomocą wartości zwracanej, musisz zwrócić liczbę całkowitą zmiennoprzecinkową.
  • Celem tego wyzwania jest znalezienie najkrótszego rozwiązania w każdym języku, a nie najkrótszego języka dla tego rozwiązania. Nie obawiaj się opublikować rozwiązania w języku, gdy krótsze rozwiązanie zostanie opublikowane w tym samym języku, o ile Twoje rozwiązanie używa innej metody.
MD XF
źródło
... więc czy byłoby to ważne czy nie?
Jonathan Allan
(edytuj ^ to nawet (zaokrąglenie))
Jonathan Allan
„Długość kodu” ← w bajtach lub znakach?
Lynn,
@Lynn Bytes, jak zwykle.
MD XF
Jest tylko 3dozwolone?
NoOneIsHere

Odpowiedzi:

3

Japt , 9 4 bajty

Tak krótko, jak to tylko możliwe :)

Obejmuje niedrukowalne (przesunięcie wiersza, kod znaków 141) po #.

3.#

Sprawdź to

W Japt każdy następujący znak #jest konwertowany na jego kod znakowy i dołączany do dowolnych cyfr lub miejsc dziesiętnych, które mogą go poprzedzać, w tym przypadku3.

Kudłaty
źródło
8

Mathematica, 18 bajtów

za pomocą funkcji zeta

wprowadź opis zdjęcia tutaj

Sqrt[6Zeta@2]~N~18

Wypróbuj online!

J42161217
źródło
7

Galaretka , 9 bajtów

“Œı⁸Ç’÷ȷ8

Wypróbuj online!

Wyjścia 3.14159265

Jak to działa

“Œı⁸Ç’     - The integer 314159265
      ÷    - divide
       ȷ8  - The integer 100000000
fireflame241
źródło
Pi nie jest obliczane!
sergiol
5
tak, dzieląc 314159265 przez 100000000 :-)
Florian F
6

VBA (Excel), 15 bajtów

MsgBox 4*Atn(1)

Wyjście: 3,14159265358979

Myślę, że to niedopuszczalne, ponieważ grałem w golfa, aby dopasować długość PI. Jego długość bez golfa wynosi 17 bajtów. RE:

remoel
źródło
1
Wygląda na to, że nie zostałeś jeszcze powitany, więc witaj na stronie!
MD XF
Och, dziękuję, proszę pana! : D
remoel
Czy nie jest Atnarcus tangens? Nie jestem pewien, czy jest to dozwolone ... pytać OP
JungHwan Min
Myślałem, że OP odnosi się tylko do wbudowanego PI. Mój błąd.
remoel
5

Galaretka , 6 bajtów

3;⁽4ƒṾ

Wypróbuj online!

Drukuje 3,14159z dopuszczonym „europejskiej”, separator dziesiętny ,.

W jaki sposób?

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
Jonathan Allan
źródło
1
Ta lista cyfr wygląda dziwnie. Myślę, że jest tam dodatek ,'.
Jonathan Frech,
1
Możesz zrobić -ÆAær5i używać .zamiast ,, ale wtedy byłoby to to samo, co moje rozwiązanie Jelly.
Zacharý
4

Python 3 , 64 bajty

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

Wypróbuj online!

Leaky Nun
źródło
Odpowiednik Pythona 2 wynosi 60 bajtów print'3.%d'%int('3p3aqd50r7654t9ywkfkgsm0yx0bikcluxlhsm',36).
Jonathan Allan
@JonathanAllan python 2 in 59: tio.run/##K6gsycjPM/r/…
primo
@primo wygląda jak post, jeśli i kiedy ...
Jonathan Allan
1
@JonathanAllan, jeśli masz na myśli, kiedy zostanie ponownie otwarty, to teraz.
MD XF
4

Desmos , 130 bajtów

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}}

Kod źródłowy tego (do którego można uzyskać dostęp poprzez kopiowanie i wklejanie wewnątrz i na zewnątrz Desmos) nie jest optymalny, gdy jest generowany za pomocą edytora Desmos, więc tam, gdzie to możliwe, zapisano kilka bajtów białych znaków.

Definiuje to funkcję, fktóra nie przyjmuje argumentów zwracających pi, obliczonych za pomocą Sekwencji Gregory'ego na k=9^9 (Nie mogę potwierdzić, że jest wystarczająco dokładna, ale uważam, że tak, można ją zwiększyć dokładnością przy większej wartości k ) , następnie wyrzuca wynik do 128miejsc po przecinku, co obok 3.długości jest kodem źródłowym.

Wypróbuj online!

ATaco
źródło
Jak rzeczywiście widzi się rezultat - widzę tylko 3.14159265617, czy patrzę w niewłaściwe miejsce; czy muszę nacisnąć przycisk?
Jonathan Allan
Desmos domyślnie nie drukuje do tylu miejsc dziesiętnych, ile podano, ale wartość powinna być dokładna.
ATaco
1
Jest to rozczarowujące, ponieważ wyzwaniem jest „wydrukować ...”
Jonathan Allan
1
„Punkt dziesiętny na wyjściu jest konieczny. Jeśli zdecydujesz się na wyjście za pomocą wartości zwracanej, musisz zwrócić liczbę całkowitą zmiennoprzecinkową.” co sprawia, że ​​jest to ważne.
ATaco,
Wydaje mi się, że intencją tego stwierdzenia nie było dopuszczenie mniejszej precyzji, ale zapewnienie separatora dziesiętnego. Nie uważam, że twoja odpowiedź jest zła.
Jonathan Allan,
3

JavaScript, 16 bajtów

_=>Math.acos(-1)

f=
_=>Math.acos(-1)
console.log(f())

Herman L.
źródło
3

CJam , 5 bajtów

3.14F

Wypróbuj online!

Jak to działa

3.14   e# Push 3.14.
    F  e# Push 15.
Dennis
źródło
Gdybyś tylko mógł to zrobić 3.E. : P, tak czy inaczej, niesamowite nadużycie IO.
Zacharý,
Szło do postu 3'.EF, ale potem zobaczyłem tę odpowiedź ...
Esolanging Fruit
3

Neim , 5 bajtów

3FBρσ

Wyjaśnienie:

3      Push 3
 FB    F pushes 45, B converts it into a character code, '.'
   ρ   Push 14
    σ  Push 15
Implicitly concatenate and print stack

Wypróbuj online!

Okx
źródło
3

APL, 6 bajtów

10○⍟-1

Bierze wyimaginowaną część ln (-1).

Wypróbuj online!

Uriel
źródło
Cześć, witaj z powrotem @Uriel! Fajnie, nie myślałem o czymś takim (z logami liczb ujemnych), niezła robota!
Zacharý
@ Zacharý dzięki, właśnie zrezygnowałem z wizyty i nie mogłem nie odpowiedzieć na to pytanie: P
Uriel
2

J , 16 bajtów

17j15":4*_3 o.1:

Wypróbuj online!

Podobne do odpowiedzi VBA. Wyjścia: 3.141592653589793.

Conor O'Brien
źródło
„Nie możesz używać wbudowanego makra lub stałej do określenia pi.” Zabawne, to twój komentarz
Leaky Nun
Twój wynik to 17 bajtów, a nie 16.
ATaco
1
@ATaco dokładnie, to 16 cyfr
tylko ASCII
@LeakyNun tak nie jest. _3 o.1oblicza atan (1). Jak zapewne wiesz, jestem w pełni świadomy zasad.
Conor O'Brien
2

Math.JS , 17 bajtów.

     log(-1,e).im

To 5 wiodących pól

Oblicza to do 15 miejsc po przecinku i domyślnie drukuje.

Wypróbuj online!

ATaco
źródło
Cóż, technicznie rzecz biorąc, oblicza to urojoną część ln(-1), ale ponieważ jest to liczba tylko urojona, jest to równoważne z dzieleniem przez i.
Zacharý
2

05AB1E , 11 bajtów

3•∊&SK•)'.ý

Wypróbuj online!

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.

KORZYSTANIE Z WBUDOWANYCH:

05AB1E , 4 bajty

žq5£

Wypróbuj online!


3žs z jakiegoś powodu nie działa ...

Urna Magicznej Ośmiornicy
źródło
@ Zacharý, czy coś przeoczyłem? Dlaczego to specjalne xD?
Magic Octopus Urn
Jest w mojej nazwie użytkownika, a także czy możesz dodać wyjaśnienie?
Zacharý
@ Zacharý HA! Mój mózg przechodził wszystkie możliwe śmieszne dowcipy związane z PPCG, które były puste. Przemyślam bzdury.
Magic Octopus Urn
@ Zacharý również dodane.
Magic Octopus Urn
Jeśli mój miał ukrytą IO, nie będzie w żaden sposób pokonać E3., jestem zła na mojego ja teraz: P.
Zacharý
2

ForceLang , 269 bajtów

set S 0x5F258E476FC1B3B5571012206C637089460E41E814CB071E61431B5F0671F551D18D2C5D2D3A2565E408C6DE8D753F595B6E9979C3866D1C9965008DCFB02E3BD11D21DFFAF17978F05C8BBACF55A5ED5E90B1D8CAD8736AA4B728EB342B453F86353DB371D322B6A98613BC5CCB00AC2.mult 1e-270
io.write S.toString 268
SuperJedi224
źródło
Link do języka przynajmniej na github .
Jonathan Allan,
2

MATL , 9 8 bajtów

-1X;V9:)

Wypróbuj online!

Wyjaśnienie:

-1      % number literal
X;      % inverse cosine (radians), giving pi
V       % convert to string
9       % specify precision
:)      % keep first 9 characters - 8 digits of precision

Oszczędność jednego bajtu dzięki Luisowi Mendo!

B. Mehta
źródło
1

Galaretka , 6 bajtów

-ÆAær5

Wypróbuj online!

Stosuje inne podejście niż inne odpowiedzi na żelki.

W jaki sposób?

-ÆAjest odwrotnym cosinusem -1(który jest pi), ær5pobiera potrzebną sekcję. Udało się, więc zaokrąglenie jest w tym przypadku równoważne obcięciu

Zacharý
źródło
1

Perl 5, 40 bajtów

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

Wymaga opcji wiersza poleceń -pMbignum, liczonej jako 8.

Przykładowe użycie:

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

Przepraszam za brak linku TIO, wydaje się, że nie obsługuje bignum(lub niezrównanego otwierającego nawiasu ...).

primo
źródło
1

MY , 7 bajtów

’2ō"8↑↵

Wypróbuj online!

W jaki sposób?

  • , zmniejsz górną część stosu ( 0jest wyskakujący, jeśli jest pusty, co powoduje utworzenie stosu [-1]). (Ten sam symbol co galaretka)
  • 2, pchnij 2.
  • ō, ponieważ górna część stosu to dwa, odrzuć 2, pop n, a następnie pchnij acos(n)(w radianach daje to pi, ten symbol ma oznak ujemny na górze. o(dla normalnego wyzwalania) pochodzi z APL).
  • ", pop górny element stosu i popchnij go jako ciąg.
  • 8, Pchać 8.
  • , pop anastępnie bpopchnijb[:a] (jest to kolejny symbol pobrany z APL).
  • , wyjście z nową linią (WYJŚCIE <- STOSOWANIE).
Zacharý
źródło
Następnie dodaj niejawne dane wyjściowe: P
MD XF
Pozostaję wierny naturze MOJEGO, mógłbym stworzyć ulepszoną wersję z faktyczną składnią i zdecydowanie z niejawnym wyjściem
Zacharý 17.09.17
1

RPL (HP48), 86,5 bajtów, 87 cyfr [Czy to się liczy?]

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

GROB jest słowem kluczowym graficznym. Dwie kolejne liczby to szerokość i wysokość. Następujące cyfry szesnastkowe to bitmapy. To 1 bajt pamięci na każde 2 cyfry plus metadane obrazu.

Pusty program « »zajmuje 10 bajtów. Polecenie zajmuje 2,5 bajta. Liczba zmiennoprzecinkowa zajmuje 10,5 bajtów, ale jeśli jest równa jednocyfrowej liczbie całkowitej, może zająć 2,5 bajta.

HP48 przechowuje 4 zamiast 8 bitów w każdej lokalizacji pamięci, więc bajt zajmuje 2 kolejne lokalizacje (low endian). Często używa się 20-bitowych fragmentów i zajmują one 2,5 bajta (nie 3).

Heimdall
źródło
1

> <> , 16 bajtów

"]a:5;."3no>n<

Wypróbuj online!

Jest tam kilka niezadrukowanych elementów, z których pierwszy ma wartość 26, a drugi 141.

Jo King
źródło
0

Excel VBA, 16 bajtów

Anonimowe funkcje bezpośredniego okna VBE, które nie pobierają żadnych danych wejściowych ani wyjściowych do żadnych STDOUT programu Excel VBA

Każda linia reprezentuje osobną funkcję, która zwraca Pi o długości 16

?Mid(4*Atn(1),1)
?Str([Acos(-1)])
Debug.?4*Atn(1);
MsgBox[Acos(-1)]
[A1]="=ACOS(-1)"
Taylor Scott
źródło
0

TI-BASIC, 7 bajtów

round(4tan⁻¹(1),6

round(2sin⁻¹(1),6

round(cos⁻¹(-1),6

Te trzy oświadczenia zostaną wydrukowane 3.141593.


Uwaga: TI-BASIC jest językiem tokenizowanym. Liczba znaków nie jest równa liczbie bajtów.

Tau
źródło