Terinspirasi oleh Bake sepotong Pi
Tantangan
Diberikan masukan 3 <= n <= 100
dan 3 <= y <= n
, buat n x n
matriks dari bagian desimal dari pi
( 14159...
), dimulai dari kiri atas. Kemudian, ambil segitiga kanan atas ukuran y x y
dan menyatukannya. Keluarkan nomor yang dihasilkan.
Misalnya, untuk input n = 5
,, y = 3
matriks berikut dibuat
14159
26535
89793
23846
26433
Kemudian, 3 x 3
segitiga kanan atas akan menjadi
159
35
3
begitu 159353
juga output.
Memasukkan
Dua bilangan bulat - n
mewakili ukuran matriks kuadrat dari digit pi, dan y
mewakili segitiga kanan atas - dalam format apa pun yang nyaman .
Keluaran
- Hasilnya berupa irisan dan gabungan angka, baik dicetak / ditampilkan ke layar, dikembalikan sebagai string, dll.
- Trailing / leading whitespace adalah opsional, asalkan tidak ada spasi putih di output (yaitu,
159 35 3
atau sejenisnya akan tidak valid). - Perhatikan bahwa karena kita secara eksplisit mencari angka
pi
, dan bukan perkiraan atau perhitungan matematis, jawaban tidak boleh membulatkan angka akhir dari matriks.
Aturan
- Ini adalah kode-golf sehingga semua aturan biasa untuk bermain golf berlaku, dan kode terpendek (dalam byte) menang.
- Program atau fungsi lengkap dapat diterima.
- Celah standar dilarang.
Contohnya
n y output
-------------
3 3 141923
5 3 159353
6 4 1592589383
6 6 141592535893238643794
20 12 358979323846950288419715820974944628620899211706792306647223172745025559196615
Jawaban:
05AB1E , 19 byte
Menggunakan pengodean CP-1252 .
Cobalah online!
Penjelasan
n=5, y=3
digunakan misalnyasumber
Python 2 (dengan sympy), 100 byte
Tidak ada sympy,
260 246 244 233 231218 byteIni mempekerjakan "Algoritma Keran Untuk Pi" dari Stanley Rabinowitz dan Stan Wagon.
Argumen standar adalah
a,b,c,d,e,f=0,1,1,1,3,3
untuk menghasilkan digit pertama pi,3
karena tidak diperlukan algoritma diinisialisasi ke titik sebelum1
dihasilkan, yang menyimpan dua byte meskipuna
danb
lebih lama karena hasilnya tidak memerlukan slicing dani
dapat mulai dari0
bukannya-1
.Hit batas rekursi default untuk test case terakhir
Gunakan
//
untuk yang pertama dari divisi sehinggastr(v)
dapat diganti dengan`v`
(kalau tidak akan berakhirL
lama).repl.it
Versi non-rekursif untuk 232 byte yang mengevaluasi kasus uji terakhir juga:
repl.it (indentasi pertama adalah satu spasi, indentasi kedua adalah satu tab)
sumber
Mathematica, 82 byte
sumber
#&@@
bukan[[1]]
.1415926535979323846433832798841971937510749448164899259
; yang terakhir9
adalah digit ke-100 pi, dan digit ke-101 adalah8
- tanpa pembulatan)MATL,
232227 byte1 Byte disimpan berkat @Luis
Cobalah secara Online
Penjelasan
sumber
Perl, 67 byte
Membutuhkan opsi baris perintah
-nMbignum=bpi
, dihitung sebagai 12. Input diambil dari stdin.Contoh Penggunaan
sumber
C #,
232 byte268 byteEdit:
Saya awalnya menggunakan string konstan untuk Pi di luar metode, tetapi sepertinya ini curang. Saya harus menggunakan nilai C # Math.PI, yang hanya memiliki 14 tempat desimal, sehingga nilai tertinggi yang
m
dapat saya gunakan adalah 3. Kembali ke papan gambar ...Golf:
Tidak Disatukan:
Bukan jawaban terpendek, tapi saya senang saya menyelesaikan yang ini ...
Hasil tes:
5 3 1593536 4 15925893836 6 14159253589323864379420 12 358979323846950288419715820974944628620899211706792306647223172745025559196615sumber
p
dan itu bukan built-in dalam bahasa (yang saya yakin tidak), Anda harus memasukkannya dalam skor byte Anda.