ประเมินช่วงเวลาที่แน่นอนของการแจกแจงแบบปกติ


18

ฉันรู้ว่าสูตรที่ง่ายต่อการจัดการสำหรับ CDF ของการแจกแจงแบบปกติค่อนข้างขาดหายไปเนื่องจากฟังก์ชันข้อผิดพลาดที่ซับซ้อนอยู่ในนั้น

แต่ผมสงสัยว่ามี AA สูตรที่ดีสำหรับยังไม่มีข้อความ(-x<+|μ,σ2) ) หรือการประมาณ "ทันสมัย" สำหรับปัญหานี้อาจเป็น

คำตอบ:


33

มันขึ้นอยู่กับสิ่งที่คุณกำลังมองหา ด้านล่างนี้เป็นรายละเอียดโดยย่อและการอ้างอิง

มากของวรรณกรรมสำหรับศูนย์ใกล้เคียงรอบ ๆ ฟังก์ชั่น

Q(x)=x12πeu22du

สำหรับx>0 0 นี่เป็นเพราะฟังก์ชั่นที่คุณให้สามารถถูกจำแนกเป็นความแตกต่างอย่างง่ายของฟังก์ชั่นด้านบน (อาจมีการปรับค่าคงที่) ฟังก์ชันนี้มีชื่อเรียกหลายชื่อรวมถึง "ส่วนท้ายของการแจกแจงแบบปกติ", "อินทิกรัลอินทิกรัลปกติ" และ "เกาส์ซี - ฟังก์ชั่นQ " เพื่อชื่อไม่กี่ คุณจะเห็นการประมาณอัตราส่วนของ Millsซึ่งก็คือ

R(x)=Q(x)φ(x)
ที่φ(x)=(2π)-1/2อี-x2/2เป็นรูปแบบไฟล์ PDF แบบเกาส์

ที่นี่ฉันแสดงรายการอ้างอิงบางอย่างเพื่อวัตถุประสงค์ต่าง ๆ ที่คุณอาจสนใจ

การคำนวณ

มาตรฐานความเป็นจริงสำหรับการคำนวณฟังก์ชันQ function หรือฟังก์ชันข้อผิดพลาดเสริมที่เกี่ยวข้องคือ

เจดับบลิวโคเหตุผลเซฟประการสำหรับฟังก์ชั่นข้อผิดพลาด , คณิตศาสตร์ คอมพ์ , 1969, pp. 631--637

การใช้งานทุกครั้ง (การเคารพตนเอง) ใช้เอกสารนี้ (MATLAB, R, ฯลฯ )

การประมาณ "แบบง่าย"

Abramowitz และ Stegunมีหนึ่งอยู่บนพื้นฐานของการขยายตัวพหุนามของการเปลี่ยนแปลงของการป้อนข้อมูล บางคนใช้มันเป็น "ความแม่นยำสูง" โดยประมาณ ฉันไม่ชอบมันเพื่อจุดประสงค์นี้เพราะมันทำงานได้ไม่ดีประมาณศูนย์ ยกตัวอย่างเช่นการประมาณของพวกเขาไม่ได้ผลผลิตQ ( 0 ) = 1 / 2ซึ่งผมคิดว่าเป็นใหญ่ไม่มีไม่มี บางครั้งสิ่งเลวร้ายเกิดขึ้นเพราะสิ่งนี้Q^(0)=1/2

Borjesson และ Sundberg ให้การประมาณค่าแบบง่าย ๆ ซึ่งทำงานได้ดีสำหรับแอพพลิเคชั่นส่วนใหญ่ที่ต้องการความแม่นยำเพียงไม่กี่หลัก ความผิดพลาดแน่นอนจะไม่เลวร้ายยิ่งกว่า 1% ซึ่งค่อนข้างดีเมื่อพิจารณาจากความเรียบง่าย ประมาณพื้นฐานคือ Q ( x ) = 1

Q^(x)=1(1-a)x+ax2+φ(x)
และเลือกที่ต้องการของพวกเขาคงมี=0.339และB=5.51 การอ้างอิงนั้นคือa=0.339=5.51

PO Borjesson และ CE Sundberg ประการที่เรียบง่ายของการทำงานข้อผิดพลาด Q (x) สำหรับการใช้งานการสื่อสาร IEEE Trans commun , COM-27 (3): 639–643, มีนาคม 2522

นี่คือพล็อตข้อผิดพลาดสัมพัทธ์สัมบูรณ์

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

วรรณกรรมวิศวกรรมไฟฟ้าจมอยู่กับการประมาณเช่นนั้นและดูเหมือนว่าพวกเขาจะได้รับความสนใจอย่างล้นหลาม หลายคนยากจนหรือขยายไปสู่การแสดงออกที่แปลกและซับซ้อน

คุณอาจจะดู

W. Bryc เครื่องแบบประมาณหนึ่งไปทางขวาตามปกติ คณิตศาสตร์ประยุกต์และการคำนวณ 127 (2-3): 365–374, เมษายน 2545

ส่วนต่อเนื่องของ Laplace

Laplace มีส่วนอย่างต่อเนื่องที่สวยงามซึ่งมีอัตราผลตอบแทนต่อเนื่องขอบเขตบนและล่างสำหรับค่าของทุก 0 ในแง่ของอัตราส่วนของ Millsx>0

R(x)=1x+1x+2x+3x+,

ที่สัญกรณ์ที่ผมเคยใช้ค่อนข้างมาตรฐานสำหรับส่วนอย่างต่อเนื่องเช่น ) สำนวนนี้ไม่ได้มาบรรจบกันอย่างรวดเร็วมากสำหรับธุรกิจขนาดเล็กxแม้ว่าและมัน diverges ที่x = 01/(x+1/(x+2/(x+3/(x+))))xx=0

เศษส่วนต่อเนื่องนี้จริง ๆ แล้วทำให้ขอบเขต "ง่าย" จำนวนมากบนที่ "ค้นพบ" ในช่วงกลางถึงปลายปี 1900 มันง่ายที่จะเห็นว่าสำหรับเศษส่วนต่อเนื่องในรูปแบบ "มาตรฐาน" (เช่นประกอบด้วยค่าสัมประสิทธิ์จำนวนเต็มบวก) การตัดเศษส่วนที่คำแปลก (แม้) จะให้ขอบเขตบน (ล่าง)Q(x)

ดังนั้น Laplace บอกเราทันทีว่า ทั้งสองเป็นขอบเขตที่ "ค้นพบ" ในช่วงกลางปี ​​1900 ในแง่ของ Q -function นี่เท่ากับ x

xx2+1<R(x)<1x,
Q หลักฐานทางเลือกนี้โดยใช้การรวมอย่างง่ายโดยชิ้นส่วนสามารถพบได้ใน S. Resnick, การผจญภัยในกระบวนการ Stochastic, Birkhauser, 1992, ในบทที่ 6 (การเคลื่อนที่แบบบราวเนียน) ข้อผิดพลาดสัมพัทธ์สัมบูรณ์ของขอบเขตเหล่านี้ไม่ได้เลวร้ายยิ่งกว่าx-2ดังที่แสดงในคำตอบที่เกี่ยวข้องนี้
xx2+1φ(x)<Q(x)<1xφ(x).
x2

แจ้งให้ทราบล่วงหน้าโดยเฉพาะอย่างยิ่งที่ไม่เท่าเทียมกันดังกล่าวข้างต้นได้ทันทีหมายความว่า x ความจริงนี้สามารถสร้างขึ้นได้โดยใช้กฎของ L'Hopital เช่นกัน สิ่งนี้ยังช่วยอธิบายทางเลือกของรูปแบบการทำงานของการประมาณ Borjesson-Sundberg ทางเลือกของการใด ๆ[ 0 , 1 ]รักษาสมดุล asymptotic เป็นx →การ พารามิเตอร์bทำหน้าที่เป็น "การแก้ไขความต่อเนื่อง" ใกล้ศูนย์Q(x)φ(x)/xa[0,1]x

นี่คือพล็อตของ -function และขอบเขต Laplace สองอันQ

Laplace bounds สำหรับหางส่วนบนของการกระจายแบบปกติ

CI ซีลีมีกระดาษจากช่วงต้นปี 1990 ที่ไม่เป็น "การแก้ไข" สำหรับค่าเล็ก ๆ ของxดูx

CI C. Lee เมื่อวันที่ Laplace อย่างต่อเนื่องส่วนหนึ่งสำหรับปกติ แอน Inst statist คณิตศาสตร์. , 44 (1): 107–120, มีนาคม 1992


ความน่าจะเป็นของ Durrett : ทฤษฎีและตัวอย่างแสดงขอบเขตบนและล่างแบบคลาสสิกบนในหน้า 6-7 ของรุ่นที่ 3 มันมีความหมายสำหรับค่าที่มากกว่าของx (พูด, x > 3 ) และมีความตึงเชิงเส้นกำกับQ(x)xx>3

หวังว่านี่จะช่วยให้คุณเริ่มต้นได้ หากคุณมีความสนใจเฉพาะเจาะจงมากขึ้นฉันอาจชี้คุณไปที่อื่นได้


10

ฉันคิดว่าฉันสายเกินไปที่จะเป็นฮีโร่ แต่ฉันต้องการแสดงความคิดเห็นในโพสต์ของคาร์ดินัลและความคิดเห็นนี้ใหญ่เกินไปสำหรับกล่องที่ตั้งใจไว้

สำหรับคำตอบนี้ฉันสมมุติว่า ; สูตรการสะท้อนที่เหมาะสมที่สามารถใช้สำหรับเชิงลบxx>0x

ฉันใช้มากขึ้นในการจัดการกับข้อผิดพลาดการทำงานของตัวเอง แต่ฉันจะพยายามที่จะแต่งสิ่งที่ฉันรู้ในแง่ของอัตราส่วน Mills ของR ( x ) (ตามที่กำหนดในคำตอบของพระราชา)erf(x)R(x)

มีวิธีการอื่นในการคำนวณฟังก์ชันข้อผิดพลาด (ประกอบ) นอกเหนือจากการใช้การประมาณ Chebyshev เนื่องจากการใช้การประมาณ Chebyshev ต้องการการจัดเก็บของค่าสัมประสิทธิ์ไม่กี่วิธีการเหล่านี้อาจมีขอบถ้าโครงสร้างอาร์เรย์เป็นบิตราคาแพงในสภาพแวดล้อมการคำนวณของคุณ (คุณสามารถอินไลน์สัมประสิทธิ์ ระเบียบ)

สำหรับ "เล็ก" , Abramowitz และ Stegun เป็นซีรี่ส์ที่มีมารยาทดี (อย่างน้อยก็ประพฤติดีกว่าซีรี่ส์ Maclaurin ทั่วไป):|x|

(ดัดแปลงจากสูตร 7.1.6)

R(x)=π2exp(x22)xj=02jj!(2j+1)!x2j

โปรดทราบว่าค่าสัมประสิทธิ์ของในซีรีย์c j = 2 j j !x2jสามารถคำนวณได้โดยเริ่มต้นด้วยc0=1แล้วใช้สูตรเรียกซ้ำcj+1=cjcj=2jj!(2j+1)!c0=1 3 สิ่งนี้จะสะดวกเมื่อใช้ชุดข้อมูลเป็นวนรอบการสรุปcj+1=cj2j+3


พระคาร์ดินัลให้ Laplacian เศษส่วนต่อเนื่องเป็นวิธีการผูกอัตราส่วนของ Mills สำหรับขนาดใหญ่; สิ่งที่ไม่เป็นที่รู้จักกันดีคือเศษส่วนต่อเนื่องยังมีประโยชน์สำหรับการประเมินเชิงตัวเลข|x|

Lentz , ธ อมป์สันและบาร์เน็ตต์มาอัลกอริทึมสำหรับตัวเลขการประเมินส่วนอย่างต่อเนื่องเป็นผลิตภัณฑ์ที่ไม่มีที่สิ้นสุดซึ่งมีประสิทธิภาพมากขึ้นกว่าวิธีปกติของการคำนวณเศษส่วนต่อเนื่อง "ย้อนกลับ" ซึ่งเป็น แทนที่จะแสดงอัลกอริธึมทั่วไปฉันจะแสดงให้เห็นว่ามันเชี่ยวชาญในการคำนวณอัตราส่วนของ Mills อย่างไร:

ทำซ้ำสำหรับ j=1,2, D j = 1Y0=x,C0=Y0,D0=0
repeat for j=1,2,
Cj=x+j

Dj=1x+jDj1
Hj=CjDjYj=HjYj-1จนถึง | Hj-1| <tolR(x)=1
Cj=x+jCj1
Hj=CjDj
Yj=HjYj1
until |Hj1|<tol
R(x)=1Yj

โดยที่กำหนดความแม่นยำtol

CF มีประโยชน์โดยที่ซีรีย์ที่กล่าวถึงก่อนหน้านี้จะเริ่มบรรจบกันอย่างช้าๆ คุณจะต้องทดสอบด้วยการพิจารณา "จุดพัก" ที่เหมาะสมเพื่อเปลี่ยนจากซีรีย์เป็น CF ในสภาพแวดล้อมการคำนวณของคุณ นอกจากนี้ยังมีทางเลือกอื่นในการใช้ซีรีย์ asymptotic แทน Laplacian CF แต่ประสบการณ์ของฉันคือ Laplacian CF นั้นดีพอสำหรับการใช้งานส่วนใหญ่


ในที่สุดหากคุณไม่จำเป็นต้องคำนวณฟังก์ชั่นข้อผิดพลาด (เสริม) อย่างแม่นยำมาก (เช่นมีเพียงไม่กี่หลักที่สำคัญ) มีการประมาณขนาดกะทัดรัด เนื่องจาก Serge Winitzki นี่คือหนึ่งในนั้น:

R(x)2π+x(π2)2+x2π+x2(π2)

1.84×102x


8

(คำตอบนี้ แต่เดิมปรากฏในการตอบสนองต่อคำถามที่คล้ายกันแล้วปิดเป็นซ้ำซ้อน OP ต้องการเพียง "การ" การดำเนินการของการแยกแบบเกาส์ไม่จำเป็นต้อง "สถานะของศิลปะ" ในความเห็นของเขามันก็เห็นได้ชัดว่าค่อนข้างง่าย จะต้องมีการนำไปใช้ระยะสั้น)


เป็นความคิดเห็นชี้ให้เห็นคุณจะต้องบูรณาการรูปแบบไฟล์ PDF มีหลายวิธีในการทำอินทิกรัล นานมาแล้วเมื่อการคำนวณช้าและมีราคาแพงเดวิดฮิลล์ใช้การประมาณโดยใช้เลขคณิตอย่างง่าย (ฟังก์ชันเชิงเหตุผลและการยกกำลัง) มันมีความแม่นยำแม่นยำสองเท่าสำหรับอาร์กิวเมนต์ทั่วไป (ระหว่าง-8.5 และ +8.5ประมาณ) ใน 1,973 เขาเผยแพร่รุ่น Fortran ในสถิติประยุกต์ที่เรียกว่า ALNORM.F. ในช่วงหลายปีที่ผ่านมาฉันได้แจ้งเรื่องนี้ให้กับสภาพแวดล้อมที่หลากหลายซึ่งไม่มีอินทิกรัล (เกาส์เซียน) หรือมีผู้ต้องสงสัย (เช่น Excel)

MatLab รุ่น (ที่มีการอ้างเหตุผลความเหมาะสม) ที่มีอยู่ในhttp://people.sc.fsu.edu/~jburkardt/m_src/asa005/alnorm.m รหัส Fortran รุ่นดั้งเดิมที่ไม่มีเอกสารจะปรากฏในเว็บไซต์"Koders Code Search" (sic)

หลายปีที่ผ่านมาฉันบอกเรื่องนี้กับ AWK รุ่นนี้อาจเป็นที่พอใจมากกว่าสำหรับนักพัฒนาสมัยใหม่ในการพอร์ตเนื่องจากไวยากรณ์ C-like (แทนที่จะเป็น Fortran) และความคิดเห็นเพิ่มเติมที่ฉันใส่เมื่อพัฒนาและทดสอบเพราะฉันต้องการเพิ่มความแม่นยำให้สูงขึ้น มันปรากฏด้านล่าง

สำหรับผู้ที่ไม่มีประสบการณ์มากในการแปลโค้ดทางวิทยาศาสตร์ / คณิตศาสตร์ / สถิติคำแนะนำบางคำ : ความผิดพลาดในการพิมพ์เพียงครั้งเดียวสามารถสร้างข้อผิดพลาดร้ายแรงที่อาจตรวจไม่พบได้ง่าย (เชื่อฉันเกี่ยวกับเรื่องนี้ผมได้ทำจำนวนมากของพวกเขา.) เสมอมักจะสร้างการทดสอบอย่างระมัดระวังและละเอียดถี่ถ้วน เนื่องจากฟังก์ชั่นอินทิกรัล / Gaussian integral / error มีอยู่ในตารางจำนวนมากและซอฟต์แวร์มากมายมันง่ายและรวดเร็วในการจัดทำค่าจำนวนมากของฟังก์ชั่นพอร์ตของคุณและเปรียบเทียบอย่างเป็นระบบ (เช่นกับคอมพิวเตอร์ไม่ใช่ด้วยตา) ค่าที่จะแก้ไขให้ถูกต้อง คุณสามารถดูการทดสอบที่จุดเริ่มต้นของรหัสของฉัน: มันสร้างตารางของค่าใน -8.5: 8.5 (โดย 0.1) ซึ่งสามารถ piped (ผ่าน STDOUT) ไปยังโปรแกรมอื่นสำหรับการตรวจสอบอย่างเป็นระบบ

อีกวิธีการทดสอบ - สำหรับผู้ที่มีพื้นฐานการวิเคราะห์เชิงตัวเลขเพียงพอที่จะทราบวิธีการประเมินข้อผิดพลาดที่คาดหวัง - จะเป็นการแยกความแตกต่างของค่าและเปรียบเทียบกับ PDF (ซึ่งคำนวณอย่างง่ายดาย)

โดยวิธีการ: รหัสนี้เป็นเพียงสำหรับกรณีที่มีค่าเฉลี่ยของ 0และส่วนเบี่ยงเบนมาตรฐานของหน่วย ("sigma") แต่นั่นคือทั้งหมดที่ต้องการ: รวมจาก- ถึง x เมื่อค่าเฉลี่ยคือ μ และ SD คือ σเพียงแค่คำนวณ Z=(x-μ)/σและนำalnormไปใช้กับมัน

แก้ไข

ผมทดสอบพอร์ตของalnormการมาติกาซึ่งคำนวณค่าความแม่นยำโดยพลการ เพื่อเปรียบเทียบผลลัพธ์นี่คือโครงร่างของบันทึกธรรมชาติของอัตราส่วนค่าหางส่วนบน1-Φ(Z) กับ Z1. (ข้อผิดพลาดเชิงบวกหมายถึงalnormมีขนาดใหญ่เกินไป)

Alnorm

ค่านั้นถูกต้องเสมอ4×10-11 เมื่อเทียบกับความน่าจะเป็นหางเล็ก ๆ เต็มที คุณสามารถดูได้ว่าการคำนวณสลับไปที่สูตร asymptotic (ที่Z=16) และเห็นได้ชัดว่าสูตรนี้มีความแม่นยำมากเป็น Zเพิ่มขึ้น พล็อตหยุดที่Z=(2×708)37.6 เพราะที่นี่เป็นจุดที่การยกกำลังสองความแม่นยำเริ่มเกิดขึ้นน้อยเกินไป

ตัวอย่างเช่นalnorm[-6.0]ผลตอบแทน9.865 876 450 315E-10 ในขณะที่มูลค่าที่แท้จริงเท่ากับ 12ERFC(32)ประมาณ 9.865 876 450 377E-10สิ่งแรกที่แตกต่างในหลักสิบสอง

NB ในส่วนของการแก้ไขนี้ฉันเปลี่ยนUPPER_TAIL_IS_ZEROจาก15.เป็น16.ในโค้ด: มันทำให้ผลลัพธ์มีความแม่นยำมากขึ้นเล็กน้อยZ ระหว่าง 15 และ 16. (สิ้นสุดการแก้ไข)

#----------------------------------------------------------------------#
#   ALNORM.AWK
#   Compute values of the cumulative normal probability function.
#   From G. Dallal's STAT-SAK (Fortran code).
#   Additional precision using asymptotic expression added 7/8/92.
#----------------------------------------------------------------------#
BEGIN {
    for (i=-85; i<=85; i++) {
        x = i/10
        p = alnorm(x, 0)
        printf("%3.1f %12.10f\n", x, p)
    }
    exit
}
function alnorm(z,up,    y,aln,w) {
#
#    ALGORITHM AS 66 APPL. STATIST. (1973) VOL.22, NO.3:
#    Hill,  I.D.  (1973).  Algorithm AS 66.  The normal  integral.
#                          Appl. Statist.,22,424-427.
#
#    Evaluates the tail area of the standard normal curve from
#    z to infinity if up, or from -infinity to z if not up.
#
#    LOWER_TAIL_IS_ONE, UPPER_TAIL_IS_ZERO, and EXP_MIN_ARG
#    must be set to suit this computer and compiler.

    LOWER_TAIL_IS_ONE = 8.5     # I.e., alnorm(8.5,0) = .999999999999+
    UPPER_TAIL_IS_ZERO = 16.0   # Changes to power series expression
    FORMULA_BREAK = 1.28        # Changes cont. fraction coefficients
    EXP_MIN_ARG = -708          # I.e., exp(-708) is essentially true 0

    if (z < 0.0) {
        up = !up
        z = -z
    }
    if ((z <= LOWER_TAIL_IS_ONE) || (up && z <= UPPER_TAIL_IS_ZERO)) {
        y = 0.5 * z * z
        if (z > FORMULA_BREAK) {
            if (-y > EXP_MIN_ARG) {
                aln = .398942280385 * exp(-y) / \
                  (z - 3.8052E-8 + 1.00000615302 / \
                  (z + 3.98064794E-4 + 1.98615381364 / \
                  (z - 0.151679116635 + 5.29330324926 / \
                  (z + 4.8385912808 - 15.1508972451 / \
                  (z + 0.742380924027 + 30.789933034 / \
                  (z + 3.99019417011))))))
            } else {
                aln = 0.0
            }
        } else {
            aln = 0.5 - z * (0.398942280444 - 0.399903438504 * y / \
              (y + 5.75885480458 - 29.8213557808 / \
              (y + 2.62433121679 + 48.6959930692 / \
              (y + 5.92885724438))))
        }
    } else {
        if (up) {   # 7/8/92
            # Uses asymptotic expansion for exp(-z*z/2)/alnorm(z)
            # Agrees with continued fraction to 11 s.f. when z >= 15
            # and coefficients through 706 are used.
            y = -0.5*z*z
            if (y > EXP_MIN_ARG) {
                w = -0.5/y  # 1/z^2
                aln = 0.3989422804014327*exp(y)/ \
                    (z*(1 + w*(1 + w*(-2 + w*(10 + w*(-74 + w*706))))))
                # Next coefficients would be -8162, 110410
            } else {
                aln = 0.0
            }
        } else {
            aln = 0.0
        }
    }
    return up ? aln : 1.0 - aln
}
### end of file ###

ฉันใช้ boost ใน C ++ เพื่อคำนวณ CDF ของการแจกแจงแบบปกติ แต่บางครั้งเมื่อฉันคำนวณ P (x> mean1 + sigma1) สำหรับปกติ (mean1, sigma1) แล้วคำนวณใหม่ P (x> mean2 + sigma2) สำหรับค่าปกติ (mean2, sigma2) จะให้เหมือนกันเสมอ มูลค่าความน่าจะเป็น! แม้ว่าฉันจะลองด้วยค่าเฉลี่ยและซิกม่าแตกต่างกันเล็กน้อย สิ่งนี้มีความหมายหรือไม่?
shn

@ user995434 นั่นเป็นข้อสังเกตที่ดี มันอยู่ในบรรทัดสุดท้ายของคำตอบของฉัน: การคำนวณทั้งสองจะเทียบเท่าราคา(Z>1) ที่ไหน Z=(X-ม.อีan1)/σ1 หรือ Z=(X-ม.อีan2)/σ2 มีการแจกแจงแบบปกติมาตรฐาน (เป็นศูนย์ค่าเฉลี่ยและหน่วย SD) ง่ายต่อการเข้าใจเมื่อมีการเปลี่ยนแปลงหน่วย: มันเหมือนกับการนับจำนวนวันเมื่ออุณหภูมิเกิน 86 องศา (F) และสังเกตว่าเป็นจำนวนวันเดียวกันกับที่อุณหภูมิเกิน 30 องศา (C)
whuber

โอ้เยี่ยมมากฉันคิดว่ามันเป็นข้อผิดพลาดในรหัสของฉัน
shn

และใช่จริง ๆ แล้วมันไม่ใช่ความน่าจะเป็นแบบเดียวกัน แต่ใกล้กันมากเช่น 0.158655273989975 และ 0.158655230168700
shn

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