Tantangan
Tulis program untuk menghitung digit N pertama (<= 10 ^ 3) dari e .
Program Anda harus mengambil bilangan bulat N sebagai input.
Memasukkan:
100
Keluaran:
2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427
Memasukkan:
7
Keluaran:
2.718282
Memasukkan:
1000
Keluaran:
2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921817413596629043572900334295260595630738132328627943490763233829880753195251019011573834187930702154089149934884167509244761460668082264800168477411853742345442437107539077744992069551702761838606261331384583000752044933826560297606737113200709328709127443747047230696977209310141692836819025515108657463772111252389784425056953696770785449969967946864454905987931636889230098793127736178215424999229576351482208269895193668033182528869398496465105820939239829488793320362509443117301238197068416140397019837679320683282376464804295311802328782509819455815301756717361332069811250996181881593041690351598888519345807273866738589422879228499892086805825749279610484198444363463244968487560233624827041978623209002160990235304369941849146314093431738143640546253152096183690888707016768396424378140592714563549061303107208510383750510115747704171898610687396965521267154688957035035
Solusi terpendek menang!
e-digits
perintah di yubnub.org misalnya, yubnub.org/parser/parse?command=e-digits+1000 yang menggunakan wolframalpha wolframalpha.com/input/…Python, 69
Menghitung iterasi N + 2 dari seri daya standar untuk e.
sumber
J, 20 ... ish.
Komputasi, tapi ... Sangat tidak efisien. Dengan n didefinisikan (20):
Sebagai fungsi monadik (32):
Sebagai fungsi tersembunyi (33, diperbaiki):
sumber
+9
.(0 j.<:1000)":+/%!i.x:450
hanya butuh beberapa detik.(0 j.<:n)":+/%!i.999x
:; lalu diam-diam:(+/%!i.999x)":~0 j.<:
)Python, 67
sumber
from decimal import*
dan hapus keduanyad.
import *
tidak akan mengimpor_One
karena garis bawah utama.05AB1E,
432 byteDicoret 4 masih teratur 4; (
Terima kasih kepada @Adnan untuk satu byte.
Menggunakan pengodean CP-1252 .
Penjelasan:
Memperbarui:
Hapus
I
, sepertižt
mengambil input pula jika tidak ada di stack.sumber
ž
karakter 1 byte dalam CP-1252 encoding, jadi ini memiliki skor total 2 byte bukan 3: p.Ruby, 68
sumber
GolfScript
4341Sunting: Saya mungkin juga mengganti 0 dengan sisa 1 dari menginisialisasi b, perbedaan yang dihasilkan terlalu kecil untuk membuatnya menjadi output.
Saya meninggalkan versi lama karena itulah yang saya dokumentasikan di bawah ini.
~10\?
Ambil input dan hitung 10 ^ input, biarkan hasilnya di tumpukan.1:b;
Simpan 1 di b.0 461,
Masukkan 0 pada stack, letakkan array [0 1 ... 459 460] pada stack.{ }460*
Jalankan fungsi 460 kali.)b*:b
Ambil elemen terakhir dari array, kalikan dengan b, simpan hasilnya di b dan biarkan hasilnya di stack.@+\
Ganti 0 (yang hanya nol pada iterasi pertama) ke atas tumpukan, tambahkan ke nilai b sisa, dan alihkan kembali hasilnya.;
Hapus sisa array (hanya [0] yang tersisa).Angka yang diinisialisasi ke 0 sekarang memiliki nilai e * 460! dan b tahan 460!
*
Lipat gandakan 10 ^ input dengan e * 460! (mereka pada saat ini hanya 2 elemen yang tersisa di tumpukan).b/
Bagilah hasilnya dengan b.Tumpukan sekarang memiliki nilai input e * 10 ^ yang ketika dikonversi ke string akan menampung semua desimal, tetapi bukan titik.
`);(;'2.'\
Sekelompok operasi string agar pas di titik.e * 460! dihitung sebagai 1 + 460 + 460 * 459 + 460 * 459 * 458 dll.
sumber
bc , 17 karakter
sumber
J, 17
Contoh:
Penggunaan yang dibangun dalam kata kerja eksponensial - jadi, "menghitung" adalah dengan alasan goyah. Pada dasarnya:
sumber
*&0j1
hanyalahj.
GTB , 14
Penjelasan
e
- Masukkane
sebagai nilai terhitung terakhirS?
- Konversie
ke string_
`A
- Masukan AS;_,1,A+1
TampilkanA
digit pertamae
sumber
Mathcad, [tbd] byte
Menggunakan algoritma keran - http://comjnl.oxfordjournals.org/content/11/2/229.full.pdf+html .
Hitungan byte yang tidak diberikan karena Mathcad byte equivalence belum ditentukan. Namun, menggunakan ekivalensi simbol kira-kira 121 byte ... dan tidak akan memenangkan hadiah singkat tidak peduli bagaimana kesetaraan ditentukan.
sumber
Mathematica, 7 byte
Jawaban saya adalah golf lebih lanjut dari ini jawaban .
Cobalah online!
Untuk beberapa alasan, output di TIO terlihat lucu tapi saya mengujinya di komputer saya dan kodenya berfungsi dengan baik.
sumber
Perl 5
-Mbignum=bexp -p
, 12 byteCobalah online!
sumber