Output dengan jumlah digit pi yang sama dengan panjang kode

9

Tantangan Anda adalah mencetak xdigit pi di manax panjang kode Anda.

Contoh:

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

Anda dapat menggunakan untuk menentukan jumlah digit yang perlu Anda cetak. Perhatikan bahwa titik desimal tidak dihitung sebagai digit pi - jadi kode panjang 3 harus memiliki outputfloor(π/10 * 10code_length) / 10code_length - 13.14 , panjang 4.

Aturan:

  • Panjang kode Anda harus lebih besar dari tiga karakter.
  • Anda tidak boleh menggunakan celah standar apa pun.
  • Anda dapat menggunakan metode output standar yang diizinkan.
  • Anda mungkin tidak membaca sumber Anda untuk menentukan panjang kode.
  • Anda tidak boleh menggunakan konstanta pi builtin.
  • Pi harus sepenuhnya akurat dan tidak diperkirakan.
  • Titik desimal dalam output diperlukan. Jika Anda memilih untuk menghasilkan melalui nilai balik, Anda harus mengembalikan integer titik mengambang.
  • Tujuan dari tantangan ini adalah untuk menemukan solusi terpendek dalam setiap bahasa, bukan bahasa terpendek untuk solusi. Jangan takut untuk memposting solusi dalam bahasa ketika solusi yang lebih pendek diposting dalam bahasa yang sama selama solusi Anda menggunakan metode yang berbeda.
MD XF
sumber
... jadi apakah ini valid atau tidak?
Jonathan Allan
(sunting ^ ini genap (pembulatan))
Jonathan Allan
“Panjang kode” ← dalam byte atau karakter?
Lynn
@ Lynn Bytes, seperti biasa.
MD XF
Apakah 3diizinkan?
NoOneIsHere

Jawaban:

3

Japt , 9 4 byte

Sesingkat itu bisa diijinkan :)

Termasuk yang tidak bisa dicetak (umpan garis terbalik, kode char 141) setelah #.

3.#

Menguji

Dalam Japt, setiap karakter berikut #dikonversi ke kode karakternya dan ditambahkan ke setiap angka atau titik desimal yang dapat mendahuluinya, dalam hal ini3.

Shaggy
sumber
8

Mathematica, 18 byte

menggunakan fungsi zeta

masukkan deskripsi gambar di sini

Sqrt[6Zeta@2]~N~18

Cobalah online!

J42161217
sumber
7

Jelly , 9 byte

“Œı⁸Ç’÷ȷ8

Cobalah online!

Keluaran 3.14159265

Bagaimana itu bekerja

“Œı⁸Ç’     - The integer 314159265
      ÷    - divide
       ȷ8  - The integer 100000000
fireflame241
sumber
Pi tidak dihitung!
sergiol
5
ya, membagi 314159265 dengan 100000000 :-)
Florian F
6

VBA (Excel), 15 byte

MsgBox 4*Atn(1)

Output: 3.14159265358979

Saya pikir ini tidak dapat diterima karena saya golf hanya agar sesuai dengan panjang PI. Panjang un-golfed adalah 17 byte. D:

remoel
sumber
1
Sepertinya Anda belum disambut, jadi, selamat datang di situs ini!
MD XF
Oh, terima kasih, tuan! : D
remoel
Bukankah Atnarctangent? Saya tidak yakin apakah ini diizinkan ... meminta OP
JungHwan Min
Saya pikir OP hanya merujuk untuk PI internal. Salahku.
remoel
5

Jelly , 6 byte

3;⁽4ƒṾ

Cobalah online!

Mencetak 3,14159dengan pemisah desimal "Eropa" yang diizinkan ,,.

Bagaimana?

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
sumber
1
Daftar digit itu terlihat aneh. Saya pikir ada tambahan ,'di sana.
Jonathan Frech
1
Anda dapat melakukan -ÆAær5dan menggunakan .alih-alih ,, tetapi kemudian itu akan sama dengan solusi Jelly saya.
Zacharý
4

Python 3 , 64 byte

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

Cobalah online!

Biarawati Bocor
sumber
Setara dengan Python 2 adalah 60 byte print'3.%d'%int('3p3aqd50r7654t9ywkfkgsm0yx0bikcluxlhsm',36).
Jonathan Allan
@JonathanAllan python 2 dalam 59: tio.run/##K6gsycjPM/r/…
primo
@primo terlihat seperti orang yang memposting jika & kapan ...
Jonathan Allan
1
@ Jonathan Allan jika Anda maksud ketika dibuka kembali, sekarang.
MD XF
4

Desmos , 130 byte

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

Kode sumber untuk ini (Yang dapat diakses dengan menyalin dan menempel di dalam dan di luar Desmos) tidak optimal ketika dibuat menggunakan editor Desmos, jadi beberapa byte spasi putih akan diturunkan jika memungkinkan.

Ini mendefinisikan fungsi fyang tidak mengambil argumen pengembalian pi, dihitung menggunakan Urutan Gregory untuk k=9^9 (Saya tidak dapat mengkonfirmasi ini cukup akurat, namun saya percaya bahwa itu, dapat dibuat lebih akurat dengan nilai lebih besar dari k ) itu kemudian lantai hasilnya ke 128tempat desimal, yang, di samping 3., adalah panjang kode sumber.

Cobalah online!

ATaco
sumber
Bagaimana orang benar-benar melihat hasilnya - saya hanya melihat 3.14159265617, apakah saya mencari di tempat yang salah; apakah saya perlu menekan tombol?
Jonathan Allan
Desmos tidak mencetak secara default ke tempat desimal sebanyak yang disediakan, tetapi nilainya harus tetap akurat.
ATaco
1
Itu mengecewakan karena tantangannya adalah "mencetak ..."
Jonathan Allan
1
"Titik desimal dalam output diperlukan. Jika Anda memilih untuk output melalui nilai kembali, Anda harus mengembalikan integer titik mengambang." yang membuat ini valid.
ATaco
Saya merasa maksud dari pernyataan itu bukan untuk memungkinkan kurang presisi tetapi untuk memastikan pemisah desimal. Pikiran Anda, saya tidak berpikir jawaban Anda buruk.
Jonathan Allan
3

Javascript, 16 byte

_=>Math.acos(-1)

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

Herman L.
sumber
3

CJam , 5 byte

3.14F

Cobalah online!

Bagaimana itu bekerja

3.14   e# Push 3.14.
    F  e# Push 15.
Dennis
sumber
Kalau saja Anda bisa melakukannya 3.E. : P, bagaimanapun juga, penyalahgunaan IO yang luar biasa.
Zacharý
Akan memposting 3'.EF, tetapi kemudian saya melihat jawaban ini ...
Buah Esolanging
3

Neim , 5 byte

3FBρσ

Penjelasan:

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

Cobalah online!

Okx
sumber
3

APL, 6 byte

10○⍟-1

Mengambil bagian imajiner dari ln (-1).

Cobalah online!

Uriel
sumber
Hai, selamat datang kembali @Uriel! Bagus, saya tidak memikirkan hal seperti itu (dengan log angka negatif), pekerjaan yang bagus!
Zacharý
@ Zacharý terima kasih, baru saja berkunjung dan tidak dapat membantu menjawab ini: P
Uriel
2

J , 16 byte

17j15":4*_3 o.1:

Cobalah online!

Mirip dengan jawaban VBA. Output: 3.141592653589793.

Conor O'Brien
sumber
"Anda mungkin tidak menggunakan makro bawaan atau konstanta untuk menentukan pi." Lucu, ini komentar Anda
Leaky Nun
Output Anda adalah 17 byte, bukan 16.
ATaco
1
@ATaco tepatnya, ini 16 digit
ASCII-only
@ LeakyNun tidak. _3 o.1menghitung atan (1). Seperti yang mungkin sudah Anda ketahui, saya menyadari aturannya.
Conor O'Brien
2

Math.JS , 17 byte.

     log(-1,e).im

Itu 5 ruang terdepan

Ini menghitung hingga 15 tempat desimal, dan secara implisit mencetaknya.

Cobalah secara Online!

ATaco
sumber
Nah, secara teknis ini menghitung bagian imajiner ln(-1), tetapi karena ini adalah angka imajiner murni, ini setara dengan membagi dengan i.
Zacharý
2

05AB1E , 11 byte

3•∊&SK•)'.ý

Cobalah 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.

MENGGUNAKAN BUILT-INS:

05AB1E , 4 byte

žq5£

Cobalah online!


3žs tidak berfungsi karena suatu alasan ...

Guci Gurita Ajaib
sumber
@ Zacharý, apakah saya melewatkan sesuatu? Mengapa xD khusus itu?
Magic Octopus Mm
Ada di nama pengguna saya, dan dapatkah Anda menambahkan penjelasan?
Zacharý
@ Zacharý HA! Otak saya sedang melewati semua lelucon lucu yang mungkin terkait PPCG, muncul kosong. Saya overthink omong kosong.
Magic Octopus Mm
@ Zacharý juga, menambahkan.
Magic Octopus Mm
Jika MY memiliki IO implisit, tidak akan ada cara untuk mengalahkan E3., aku marah pada diriku sendiri sekarang: p.
Zacharý
2

ForceLang , 269 byte

set S 0x5F258E476FC1B3B5571012206C637089460E41E814CB071E61431B5F0671F551D18D2C5D2D3A2565E408C6DE8D753F595B6E9979C3866D1C9965008DCFB02E3BD11D21DFFAF17978F05C8BBACF55A5ED5E90B1D8CAD8736AA4B728EB342B453F86353DB371D322B6A98613BC5CCB00AC2.mult 1e-270
io.write S.toString 268
SuperJedi224
sumber
Tautkan ke bahasa di github setidaknya.
Jonathan Allan
2

MATL , 9 8 byte

-1X;V9:)

Cobalah online!

Penjelasan:

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

Disimpan satu byte berkat Luis Mendo!

B. Mehta
sumber
1

Jelly , 6 byte

-ÆAær5

Cobalah online!

Menggunakan pendekatan yang berbeda dari jawaban Jelly lainnya.

Bagaimana?

-ÆAadalah cosinus terbalik dari -1(yang pi), ær5mengambil bagian yang diperlukan. Ini berhasil sehingga pembulatan setara dengan pemotongan dalam kasus ini

Zacharý
sumber
1

Haskell , 15 byte

 acos(-1)-3e-15

Cobalah online!

Menggunakan formula @JungHwanMin.

jferard
sumber
1

Perl 5, 40 byte

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

Membutuhkan opsi baris perintah -pMbignum, dihitung sebagai 8.

Penggunaan sampel:

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

Saya minta maaf karena tidak ada tautan TIO, sepertinya tidak mendukung bignum(atau brace pembuka yang tak tertandingi ...).

primo
sumber
1

MY , 7 byte

’2ō"8↑↵

Cobalah online!

Bagaimana?

  • , kurangi bagian atas tumpukan ( 0muncul jika kosong, buat tumpukan [-1]). (Simbol yang sama seperti Jelly)
  • 2, dorong 2.
  • ō, karena bagian atas tumpukan adalah dua, buang 2, pop n, lalu tekan acos(n)(dalam radian, ini memberi pi, simbol ini odengan tanda negatif di atasnya. o(untuk trigonometri normal) berasal dari APL).
  • ", pop elemen atas tumpukan dan dorong sebagai string.
  • 8, dorong 8.
  • , pop alalu b, dorongb[:a] (Ini adalah simbol lain yang diambil dari APL).
  • , keluaran dengan baris baru (OUTPUT <- STACK).
Zacharý
sumber
Kemudian tambahkan output implisit: P
MD XF
Saya tetap setia pada sifat MY, saya mungkin membuat versi yang disempurnakan dengan sintaksis yang sebenarnya, dan pastinya dengan keluaran implisit
Zacharý
1

RPL (HP48), 86,5 byte, 87 digit [Apakah ini masuk hitungan?]

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

GROB adalah kata kunci gambar. 2 angka yang mengikuti adalah lebar dan tinggi. Digit heksadesimal yang mengikuti adalah bitmap. Itu 1 byte penyimpanan untuk setiap 2 digit plus metadata gambar.

Program kosong « »membutuhkan 10 byte. Perintah membutuhkan 2,5 byte. Float membutuhkan 10,5 byte, tetapi jika itu sama dengan integer satu digit, itu bisa memakan 2,5 byte.

HP48 menyimpan 4 daripada 8 bit di setiap lokasi memori, sehingga satu byte menempati 2 lokasi berturut-turut (low endian). Seringkali potongan 20-bit digunakan, dan mereka mengambil 2,5 byte (bukan 3).

Heimdall
sumber
1

> <> , 16 byte

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

Cobalah online!

Ada beberapa unsintables di sana, dengan yang pertama bernilai 26 dan yang kedua 141.

Jo King
sumber
0

Excel VBA, 16 Bytes

Fungsi jendela langsung VBE anonim yang tidak mengambil input dan output ke salah satu STDOUT Excel VBA

Setiap baris mewakili fungsi terpisah yang mengembalikan Pi dengan panjang 16

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

Oktaf , 16 byte

vpa(acos(-1),16)

Cobalah online!

Saya mengalami kesulitan membayangkan bagaimana ini bisa lebih pendek ...

Sanchises
sumber
0

PHP, 14 Bytes

Cobalah online!

<?=acos(-001);

Agak sulit, tapi persiapannya M_PIadalah3.1415926535898

Francisco Hahn
sumber
0

TI-BASIC, 7 byte

round(4tan⁻¹(1),6

round(2sin⁻¹(1),6

round(cos⁻¹(-1),6

Tiga pernyataan ini akan dicetak 3.141593.


Catatan: TI-BASIC adalah bahasa tokenized Jumlah karakter tidak sama dengan jumlah byte.

Tau
sumber