Untuk mengantisipasi MathJax dinonaktifkan sementara , MathJax yang diberikan dalam pertanyaan ini telah diganti dengan gambar. Anda tetap dapat memposting jawaban tetapi Anda harus melihat hasil MathJax di situs lain .
PPCG baru saja mendapat MathJax ! Ini berarti kita sekarang dapat dengan mudah memasukkan formula matematika yang diformat dengan baik ke dalam tulisan. ( Tutorial berguna MathJax. )
Sebagai contoh, di sini adalah rasio emas yang dinyatakan sebagai fraksi lanjutan tanpa batas :
Kode MathJax untuk persamaan ini adalah
$$\varphi=1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\ddots}}}}$$
Anda dapat menemukan ini dengan mengklik kanan rumus dan mengikuti Show Math As → TeX Commands .
The $$
berarti ia ditampilkan sendiri di tengah halaman bukan inline. Gunakan satu $
untuk inline.
Tantangan
Tulis sebuah program yang menggunakan bilangan bulat non-negatif, n, dan mengeluarkan kode MathJax untuk "langkah-langkah" dari fraksi lanjutan untuk rasio emas.
Untuk menjaga hal-hal standar di jawaban, Anda harus menggunakan sintaks MathJax yang tepat ini :
Untuk n = 0, output harus
$$\varphi=1+\dots$$
.
Yang diterjemahkan sebagai:Untuk n = 1, hasilnya harus
$$\varphi=1+\cfrac1{1+\ddots}$$
.
Yang diterjemahkan sebagai:Untuk n = 2, output harus
$$\varphi=1+\cfrac1{1+\cfrac1{1+\ddots}}$$
.
Yang diterjemahkan sebagai:Untuk n = 3, output harus
$$\varphi=1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\ddots}}}$$
.
Yang diterjemahkan sebagai:
Pola ini berlanjut untuk n yang lebih besar. Anda bisa mengatakan bahwa n mewakili jumlah garis pembagian dalam persamaan.
Catatan
\cfrac
digunakan bukan yang lebih umum\frac
.\dots
digunakan sebagai ganti\ddots
untuk n = 0.- Ambil input dari stdin atau baris perintah.
- Output ke stdout (dengan baris tambahan opsional).
- Atau, Anda dapat menulis fungsi yang mengambil n sebagai integer dan mengembalikan kode MathJax sebagai string (atau masih mencetaknya).
Mencetak gol
Pengajuan terkecil dalam bytes menang. Tiebreaker pergi ke pengiriman sebelumnya.
sumber
Uncaught ReferenceError: textbox is not defined
Jawaban:
CJam,
5150 bytePenjelasan kode:
Beberapa contoh:
N = 0
N = 4
N = 15
UPDATE - 1 byte disimpan berkat Sp3000!
Cobalah online di sini
sumber
"$$\varphi=1+""\cfrac1{1+"ri:R*'\"ddots"R!>'}R*'$_
\v
ke\\v
.Python,
706867 byteIni mendefinisikan fungsi anonim yang hanya menggunakan perkalian string sederhana dan pemformatan string.
(Terima kasih kepada @xnor untuk menunjukkan bahwa itu
\\c
hanya dapat ditulis sebagai\c
, karenac
tidak dapat melarikan diri. Sayangnya ini tidak berlaku untuk\\v
, karena\v
ASCII 11.)Upaya sebelumnya:
sumber
> <> ,
8986 + 3 = 89 byteJalankan dengan
-v
bendera, misalnyaAnehnya> <> tidak terlalu buruk di sini, karena kita bisa meniru perkalian string dengan memiliki penghitung yang kita kurangi setiap iterasi.
(-3 byte terima kasih kepada @randomra)
sumber
Retina , 160 + 7 = 167 byte
; +
(\d*)#(?:(((((((((9)|8)|7)|6)|5)|4)|3)|2)|1)|0) $1$1$1$1$1$1$1$1$1$1$2$3$4$5$6$7$8$9$10# ;
#Setiap baris masuk ke file sumber yang terpisah, jadi saya telah menambahkan 1 byte untuk setiap file setelah yang pertama . Namun, untuk kenyamanan, Retina sekarang juga mendukung
-s
flag baris perintah, yang memungkinkan Anda untuk menempatkan semua ini ke dalam satu file (dalam hal ini baris baru diperlakukan sebagai pemisah file).Bagian terbesar dari kode (98 byte) digunakan untuk mengubah input dari desimal ke unary (file 3 hingga 6). Ide dasar kode adalah mengelilingi input
$$\varphi=1+\dots...$$
, kemudian mengonversi input ke unary, dan kemudian memperluas\dotsN
atau\ddotsN
ke tingkat berikutnya dari fraksi lanjutan (sambil mengurangiN
menjadiN-1
).sumber
Julia,
7673 byteIni menciptakan fungsi lambda yang mengambil integer tunggal sebagai input dan mengembalikan MathJax sebagai string. Untuk menyebutnya, berikan nama, mis
f=n->...
.Sayangnya baik garis miring terbalik dan tanda-tanda dolar harus lolos dalam string Julia karena mereka berdua memiliki makna khusus. Penggabungan string dilakukan menggunakan
*
dan pengulangan string dengan^
.Contoh:
Saran diterima seperti biasa!
Sunting: Disimpan 3 byte berkat plannapus!
sumber
"d"^(n>0)
bukannya(n>0?"d":"")
akan membuatnya lebih pendek."string"^0
itu sah.Elemen, 63 Karakter
Ini adalah solusi paling mudah. Sayangnya, jumlah besar simbol dalam output menyebabkan peningkatan panjang program yang signifikan (menempatkan string dalam program secara langsung menyebabkan simbol melakukan operasi). Saya yakin ada ruang untuk bermain golf, tapi saya tidak punya waktu lagi sekarang.
Karena bahasa ini masih relatif tidak dikenal, inilah tautan ke juru bahasa , yang ditulis dalam Perl.
sumber
T-SQL,
229227138Sudah lama sejak saya melakukan jawaban SQL dan seperti biasa sangat verbose. Sunting Tentu saja saya terlalu rumit dan tidak membutuhkan permintaan rekursif sama sekali.
Asli
Ini menciptakan fungsi tabel inline yang menggunakan kueri rekursif untuk memasukkan dalam
cfrac1{1+\
per iterasi tambahan . Mengubah titik-titik ke titik-titik itu mahal, tetapi menyelamatkan pasangan menyingkirkan ganti :). Juga harus menggunakan string asli sebagai 'VARCHAR (MAX)' sedikit biaya.Ini digunakan sebagai berikut SQLFiddle :
sumber
Ruby,
76757170 byteIni terasa mencurigakan secara langsung, jadi tolong beri tahu saya jika saya mengacaukan suatu tempat.
Kebetulan, ini adalah hal pertama yang pernah saya tulis di Ruby - Saya mencari bahasa yang mendukung pengulangan string dengan mengalikan, dan Ruby sepertinya melakukan triknya.
Untuk diterapkan seperti:
sumber
J, 60 byte
Pemakaian:
Metode:
Tali
'$$\varphi=1+\ cfrac1{1+\ d dots } $$ '
dipotong di ruang-ruang dan bagian-bagiannya diulang1 n signum(n) 1 n 1
kali dan kemudian bagian-bagian ini digabungkan.Cobalah online di sini.
sumber
R,
9390Sama seperti jawaban lainnya. Terima kasih kepada @plannapus untuk tip pemindaian.
cat
digunakan daripada paste0 karena hasilnya akan berakhir dengan\\
bukannya\
.Digunakan
sumber
n
sebagai stdin pada kemunculan pertamanya, Anda dapat menyimpan beberapa karakter:cat("$$\\varphi=1+\\",rep("cfrac1{1+\\",n<-scan()),if(n)"d","dots",rep("}",n),"$$",sep="")
JavaScript,
11410910685 bytes berkat George ReithIni adalah entri pertama saya dalam kontes codegolf! Tolong beritahu saya cara meningkatkan.
Entri sebelumnya (106 byte):
Entri sebelumnya (109 byte):
Entri sebelumnya (114 byte):
Rekatkan ke konsol browser dan panggil di
f(n)
manan
nomor 'langkah'.Kode sederhana :
sumber
Pyth - 52 byte
Pendekatan sederhana dalam Pyth, cukup banyak dicuri dari solusi Python @ Sp3000. Menggunakan operator pemformatan string
%
.Cobalah online di sini .
sumber
Pyth, 50 byte
sumber
JavaScript (ES6), 76
80Sebagian bersifat rekursif. Single / double d adalah bagian yang paling menjengkelkan.
Uji di Firefox / konsol FireBug
sumber
Python,
90116karena solusi paling efisien telah diposting beberapa kali, saya menggunakan pengganti string
Sunting: sialan, mengabaikan
dots
alih - alihddots
untukn=0
, sekarang solusi rekursif dengan klausa tambahan ditempelkan terlalu jelek untuk bersaing.sumber
n=0
kasing khusus (titik bukan titik).Haskell, 86
Pada dasarnya pendekatan yang sama dengan semua solusi di sini.
drop(0^n)"ddots"
itu lucu!sumber