คำนวณตัวเลข N แรกของ e


13

ท้าทาย

เขียนโปรแกรมในการคำนวณครั้งแรก N (<= 10 ^ 3) ตัวเลขของอี

โปรแกรมของคุณควรใช้จำนวนเต็มNเป็นอินพุต

การป้อนข้อมูล:

100

เอาท์พุท:

2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427

การป้อนข้อมูล:

7

เอาท์พุท:

2.718282

การป้อนข้อมูล:

1000

เอาท์พุท:

2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921817413596629043572900334295260595630738132328627943490763233829880753195251019011573834187930702154089149934884167509244761460668082264800168477411853742345442437107539077744992069551702761838606261331384583000752044933826560297606737113200709328709127443747047230696977209310141692836819025515108657463772111252389784425056953696770785449969967946864454905987931636889230098793127736178215424999229576351482208269895193668033182528869398496465105820939239829488793320362509443117301238197068416140397019837679320683282376464804295311802328782509819455815301756717361332069811250996181881593041690351598888519345807273866738589422879228499892086805825749279610484198444363463244968487560233624827041978623209002160990235304369941849146314093431738143640546253152096183690888707016768396424378140592714563549061303107208510383750510115747704171898610687396965521267154688957035035

ทางออกที่สั้นที่สุดชนะ!

คำตอบ:


8

Mathematica (12 ไบต์)

N[E,Input[]]

คุณสามารถลองออนไลน์ได้: มีe-digitsคำสั่งใน yubnub.org เช่นyubnub.org/parser/parse?command=e-digits+1000ที่ใช้ wolframalpha wolframalpha.com/input/ …
jfs

1
-1 เนื่องจากคุณไม่ใช้การคำนวณด้วยตนเอง
FUZxxl

2
@FUZxxl: ผู้เขียนไม่ได้ขอให้มีการติดตั้งเฉพาะที่สั้นที่สุดเท่านั้นที่ต้องการ
Quixotic

7
@ Quixotic คำถามจะพูดว่า "คำนวณ" ไม่ใช่แค่เอาท์พุท คุณจะเถียงสิ่งเดียวกันหรือไม่หากคำถามที่ได้กล่าวว่า "คำนวณ" แทนที่จะเป็น "คำนวณ"
nitro2k01

7

Python 69

E = f = n = 1; N = อินพุท () + 2; exec "+ e = 10 ** N / f ฉ * n =; + n = 1;" * N. print'2 '+ `e` [ 1: -4]

คำนวณการวนซ้ำ N + 2 ของชุดพลังงานมาตรฐานสำหรับ e


6

J, 20 ...

การคำนวณ แต่ ... ไม่มีประสิทธิภาพมาก ด้วยการกำหนด n (20):

(0 j.<:n)":+/%!i.x:n+9

ในฐานะที่เป็นฟังก์ชั่น monadic (32):

ge =. 3 : '(0 j.<:y)":+/%!i.x:y+9'

ในฐานะที่เป็นฟังก์ชั่นเงียบ (33 คงที่):

(0 j.<:)":(+/)&:(%&!&i.&x:&(9&+))

สิ่งนี้จะมาบรรจบกันอย่างรวดเร็ว (สำหรับ 100 หลักที่คุณต้องการ "เพียงแค่" 70 คำ) เพื่อให้คุณสามารถวาง+9ได้
Eelvex

สำหรับ 1,000 หลักนี้: (0 j.<:1000)":+/%!i.x:450ใช้เวลาเพียงไม่กี่วินาที
Eelvex

คุณสนใจอธิบายรหัสของคุณหรือไม่
aaaaaaaaaaaa

@Eevenx: แต่ฉันต้องการเงื่อนไขเพิ่มเติมจนถึง N = 30 หรือมากกว่านั้น (คำแนะนำใด ๆ เกี่ยวกับการลดระเบียบของประกอบด้วยว่าหรือเป็นที่เกี่ยวกับสิทธิ?)
เจส Millikan

อาคุณพูดถูกโชคไม่ดี (นั่น "ระเบียบ" สั้นกว่าสิ่งใดที่เราสามารถขึ้นมา - ถ้าปิดแน่นอนคุณใช้จำนวนคงที่สำหรับฉันที่ชอบ:. (0 j.<:n)":+/%!i.999xแล้วโดยปริยาย: (+/%!i.999x)":~0 j.<:)
Eelvex

5

Python, 67

import decimal as d
d.getcontext().prec=input()
print d._One.exp()

บันทึก 3 ตัวอักษร? from decimal import*และลบทั้งคู่d.
Timtech

@Timtech import *จะไม่นำเข้า_Oneเนื่องจากการขีดเส้นใต้ชั้นนำ
jfs

โอเคไม่รู้ว่าขอโทษ /
Timtech

3

05AB1E, 4 3 2 ไบต์

ข้ามออก 4 ยังคงปกติ 4; (

ขอบคุณ @Adnan สำหรับไบต์

žt

ใช้การเข้ารหัสCP-1252

คำอธิบาย:

žt - Push input. Pop a, push e to a places (up to 10000).

ปรับปรุง:

เอาออกIเช่นเดียวกับžtรับอินพุตหากไม่มีในกองซ้อน


1
ฉันทำเครื่องหมายว่าไม่แข่งขันเนื่องจาก 05AB1E ถูกสร้างขึ้นประมาณ 4 ปีครึ่งหลังจากมีการโพสต์ความท้าทายนี้
Mego

@Mego ตกลงฉันจะจำที่จะทำในครั้งต่อไป
George Gibson

1
ยินดีต้อนรับสู่การเขียนโปรแกรมปริศนาและรหัสกอล์ฟ! žตัวอักษรเป็น1 ไบต์ในCP-1252การเข้ารหัสเพื่อให้มีคะแนนรวม 2 ไบต์แทน 3: p
Adnan

@Adnan ขอบคุณ! ภาษาดี btw
George Gibson

@GeorgeGibson ขอขอบคุณ! :)
Adnan

2

ทับทิม, 68

require 'bigdecimal/math';include BigMath;puts E(gets.to_i).to_s 'F'

มันไม่ทำงานบน ruby1.8 มันสร้างผลลัพธ์ที่ไม่ถูกต้องใน ruby1.9
jfs

คุณพูดถูก แต่ควรใช้งานใน Ruby 1.9 ดูเหมือนว่ามีบางอย่างผิดปกติกับความแม่นยำในฟังก์ชั่นE
david4dev

ดูดีที่นี่เพียงเพิ่มตัวเลขที่ไม่แน่นอน อาจจะเป็นเช่นนี้? require'bigdecimal / math '; ทำให้ BigMath :: E (a = gets.to_i) .to_s (? F) [0, a + 1]
steenslag

1

GolfScript 43 41

~10\?1:b 461,{)b*:b@+\}460*;*b/`);(;'2.'\

แก้ไข: ฉันอาจแทนที่ 0 ด้วย 1 ที่เหลือจากการเริ่มต้น b ความแตกต่างที่เกิดขึ้นมีขนาดเล็กเกินไปที่จะทำให้มันเป็นผลลัพธ์

ฉันออกเวอร์ชั่นเก่าเนื่องจากเป็นสิ่งที่ฉันได้บันทึกไว้ด้านล่าง

~10\?1:b;0 461,{)b*:b@+\}460*;*b/`);(;'2.'\

~10\?รับอินพุตและคำนวณอินพุต 10 ^ เก็บผลลัพธ์ไว้ในสแต็ก
1:b;เก็บ 1 ใน b.
0 461,วาง 0 บนสแต็กวางอาร์เรย์ [0 1 ... 459 460] บนสแต็ก
{ }460*เรียกใช้ฟังก์ชัน 460 ครั้ง
)b*:bใช้องค์ประกอบสุดท้ายของอาร์เรย์คูณด้วย b เก็บผลลัพธ์เป็น b และเก็บผลลัพธ์ไว้ในสแต็ก
@+\สลับ 0 (ซึ่งเป็นเพียงศูนย์ในการวนซ้ำครั้งแรก) ไปที่ด้านบนของสแต็กเพิ่มลงในค่า b ที่เหลือและสลับผลลัพธ์กลับมาอีกครั้ง
;ลบส่วนที่เหลือของอาร์เรย์ (เหลือเพียง [0])
จำนวนที่เริ่มต้นเป็น 0 จะมีค่า e * 460! และ b ถือ 460!
*ทวีคูณ 10 ^ อินพุตด้วย e * 460! (พวกเขาอยู่ที่จุดนี้เพียง 2 องค์ประกอบที่เหลืออยู่ในสแต็ค)
b/หารผลลัพธ์ด้วย b
ตอนนี้สแต็คจะเก็บค่าอินพุต e * 10 ^ ซึ่งเมื่อแปลงเป็นสตริงจะเก็บทศนิยมทั้งหมด แต่ไม่ใช่จุด
`);(;'2.'\พวงของการดำเนินการสตริงให้พอดีกับจุด

E * 460! คำนวณเป็น 1 + 460 + 460 * 459 + 460 * 459 * 458 เป็นต้น



0

J, 17

(":&(x:^1)@*&0j1)

ตัวอย่าง:

(":&(x:^1)@*&0j1) 50
2.71828182845891281655718620537435347047040502245993

ใช้คำกริยาแทนเลขยกกำลัง - ดังนั้น "คำนวณ" อยู่ในบริเวณที่สั่นคลอน โดยทั่วไป:

^1 - computes e**1
x: - does extended precision
0jy ": - formats the number to y digit

*&0j1เป็นเพียงj.
FrownyFrog

0

GTB , 14

eS?`AS;_,1,A+1

คำอธิบาย

e- ใส่eเป็นค่าที่คำนวณล่าสุด

S?- แปลงeเป็นสตริง_

`A - อินพุต A

S;_,1,A+1แสดงAตัวเลขแรกของe


0

Mathcad, [tbd] ไบต์

ป้อนคำอธิบายรูปภาพที่นี่

ใช้วิธีจุก - การhttp://comjnl.oxfordjournals.org/content/11/2/229.full.pdf+html


ไม่ได้รับการนับไบต์เป็น Mathcad การนับไบต์ที่เทียบเท่าจะต้องพิจารณา อย่างไรก็ตามการใช้สัญลักษณ์ที่เทียบเท่ากันนั้นมีขนาดประมาณ 121 ไบต์ ... และจะไม่ชนะรางวัลความกะทัดรัดใด ๆ


0

Mathematica ขนาด 7 ไบต์

N[E,#]&

คำตอบของฉันคือการเล่นกอล์ฟต่อไปของนี้คำตอบ

ลองออนไลน์!

ด้วยเหตุผลบางอย่างผลลัพธ์ที่ TIO ดูตลก แต่ฉันทดสอบบนเครื่องของฉันและรหัสทำงานได้ดี


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.