แสดงจำนวนจริงโดยไม่สูญเสียความแม่นยำ


10

จุดลอยตัวปัจจุบัน (ANSI C float, double) อนุญาตให้แสดงการประมาณจำนวนจริง
มีวิธีใดที่จะแสดงจำนวนจริงโดยไม่มีข้อผิดพลาด ?
นี่คือความคิดที่ฉันมีซึ่งเป็นอะไร แต่สมบูรณ์แบบ

ตัวอย่างเช่น 1/3 คือ 0.33333333 ... (ฐาน 10) หรือ o.01010101 ... (ฐาน 2) แต่ยัง 0.1 (ฐาน 3)
เป็นความคิดที่ดีที่จะใช้ "โครงสร้าง" นี้หรือไม่:

base, mantissa, exponent

ดังนั้น 1/3 อาจเท่ากับ 3 ^ -1

{[11] = base 3, [1.0] mantissa, [-1] exponent}

ความคิดอื่น ๆ ?


12
คุณจะสามารถแสดงจำนวนตรรกยะด้วยวิธีนี้เท่านั้น
Andrej Bauer

คุณเสนอให้ใช้การดำเนินการทางคณิตศาสตร์กับตัวเลขในการเป็นตัวแทนนี้ได้อย่างไร? ใช้ลอการิทึมเพื่อเปลี่ยนฐานหรือไม่ นี้จะเป็นมากมีราคาแพงกว่า IEEE คณิตศาสตร์จุดลอย
David Zhang

ฉันไม่มีความคิด ฉันไม่ใช่วิศวกร :) เห็นได้ชัดว่าฉันไม่สามารถนำไปใช้กับฮาร์ดแวร์ได้ ช้าการดำเนินงาน unefficient สามารถทำได้ในซีนี้จะเป็นเพียงการทดลอง
incud

คำตอบ:


20

ทุกอย่างขึ้นอยู่กับสิ่งที่คุณต้องการจะทำ

ตัวอย่างเช่นสิ่งที่คุณแสดงเป็นวิธีที่ยอดเยี่ยมในการแสดงจำนวนตรรกยะ แต่มันก็ยังไม่สามารถแสดงอะไรได้อย่างเช่นหรืออย่างสมบูรณ์แบบeπe

ในความเป็นจริงหลายภาษาเช่น Haskell และ Scheme ได้สร้างขึ้นเพื่อรองรับจำนวนตรรกยะเก็บไว้ในรูปแบบโดยที่เป็นจำนวนเต็ม a,baba,b

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

เป็นที่รู้จักกันว่าบางตัวเลขจริงมี uncomputable เช่นหมายเลขลังเล ไม่มีอัลกอริทึมที่แจกแจงหลักซึ่งแตกต่างจากซึ่งเราสามารถคำนวณตัวเลขที่ตราบเท่าที่เรารอนานพอnπn

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


ขอถามอีกคำถามได้ไหม หากคุณเคยเป็นวิศวกรของ Intel ในยุค 80 คุณจะ "ออกแบบ" รูปแบบตัวเลขจริงของคุณอย่างไร
incud

3
ฉันไม่ค่อยมีคุณสมบัติที่จะตอบว่าเนื่องจากฉันไม่ใช่วิศวกรฉันเป็นนักวิจัยเชิงทฤษฎี ฉันไม่เห็นอะไรผิดปกติมากนักกับมาตรฐาน IEEE float และ double และตอนนี้รูปสี่เหลี่ยม ฉันไม่คิดว่าจะมีแอปพลิเคชั่นมากมายขึ้นอยู่กับความแม่นยำของเลขคณิตที่สูงขึ้นและแอปพลิเคชันที่สามารถใช้เวอร์ชันที่รองรับซอฟต์แวร์ได้
jmite

พีชคณิตเชิงสัญลักษณ์ไม่ใช่วิธีการที่ถูกต้องสำหรับการคำนวณทางคณิตศาสตร์ที่แท้จริง คุณต้องมีการเป็นตัวแทนซึ่งอนุญาตให้ mantissas ขนาดใหญ่โดยพลการ
Andrej Bauer

8
@AndrejBauer: mantissa ขนาดใหญ่โดยพลการจะไม่ช่วยให้คุณประหยัดถ้าคุณต้องการเป็นตัวแทนที่แน่นอนของ . 2
user2357112 รองรับ Monica

@jmite คุณสุภาพมากเกินไป :)
277147

22

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


หนึ่งสามารถจำกัดความต้องการจากการแสดงจำนวนจริงทุกอย่างเพื่อ จำกัด จำนวนจริงเหล่านั้นเท่านั้นซึ่งอาจเป็นผลลัพธ์ของเครื่องทัวริง นั่นจะเป็นตัวเลขจริงที่นับได้ แต่จะยังครอบคลุมทุกหมายเลขที่คุณต้องการแสดง แต่ฉันไม่คิดว่าคุณสามารถทำการคำนวณที่มีประสิทธิภาพกับตัวเลขเหล่านี้ได้
kasperd

3
@kasperd พวกเขาเรียกว่าreals ที่คำนวณได้ น่าเสียดายที่สิ่งต่าง ๆ เช่นความเสมอภาคนั้นไม่สามารถคำนวณได้จาก reals ที่คำนวณได้
David Richerby

เป็นที่ชัดเจนว่าการคำนวณความเท่าเทียมกันในจำนวนดังกล่าวนั้นเทียบเท่ากับการแก้ปัญหาการหยุดชะงัก กำหนดหนึ่ง TM สามารถกำหนดจำนวนจริงซึ่งเริ่มต้นด้วยจำนวนมากทศนิยมที่เป็นศูนย์ให้มากที่สุดเท่าที่เวลาทำงานของ TM แล้วตามด้วยหนึ่ง การเปรียบเทียบตัวเลขนั้นเท่ากับศูนย์จะเท่ากับการแก้ปัญหาการหยุดชะงักของ TM ดั้งเดิม
kasperd

คำตอบนี้เป็นเท็จ Alan Turing ในเอกสารฉบับแรกของเขาบนเครื่องจักรสิ่งที่เขาประดิษฐ์เครื่องทัวริงพูดถึงการแสดง reals เป็นสตริงที่ไม่มีที่สิ้นสุดของข้อมูล สิ่งนี้นำไปสู่ความคิดที่เรียกว่า "เครื่องจักรทัวริง II" และมีทฤษฎีที่ประสบความสำเร็จอย่างมากในการคำนวณจำนวนจริงตามความคิด มันถูกนำไปใช้ในทางปฏิบัติด้วยดูคำตอบของฉัน
Andrej Bauer

1
บางทีมันทำได้ในทางเทคนิค แต่มันก็พลาดประเด็นซึ่งก็คือมันมีจำนวนจริงที่ไม่มีที่สิ้นสุดอย่างสมเหตุสมผล และนั่นก็ไม่ใช่เรื่องแปลกเลย: การเชื่อมต่อ TCP / IP หรือการโทรผ่าน Skype หรือฟีดวิดีโอจากกล้องเป็นตัวอย่างทั้งหมดของข้อมูลที่ไม่มีขีด จำกัด ไม่มีข้อ จำกัด เกี่ยวกับข้อมูลที่พวกเขาสามารถให้ได้ มีข้อ จำกัด เกี่ยวกับจำนวนข้อมูลที่คุณสามารถนำออกไปได้ในเวลาที่ จำกัด
Andrej Bauer

7

ความคิดของคุณไม่ทำงานเพราะตัวเลขที่แสดงในฐานกับ mantissa mและเลขชี้กำลังeคือจำนวนตรรกยะb m - eดังนั้นการแสดงของคุณจึงทำงานได้อย่างแม่นยำสำหรับจำนวนตรรกยะและไม่มีคนอื่น คุณไม่สามารถเป็นตัวแทนbmebmeเช่น2

มีสาขาคณิตศาสตร์คำนวณทั้งหมดซึ่งเกี่ยวข้องกับคณิตศาสตร์จริงที่แน่นอน มีการเสนอโครงสร้างข้อมูลจำนวนมากเพื่อแสดงจำนวนจริงที่แน่นอน : สตรีมของตัวเลข, สตรีมของการหดตัวเลียนแบบ, ลำดับ Cauchy ของ rationals, ลำดับ Cauchy ของ Rationals dyadic, Dedekind ตัด, ลำดับของ shkrinking ตามช่วงเวลาจริง ฯลฯ ในความคิดเหล่านี้ตัวอย่างเช่น:

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

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

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

ไม่ว่าในกรณีใด ๆ หัวข้อนี้จะจัดการกับการอ่านเพิ่มเติม


+1 แต่ฉันจะคัดค้านว่าคุณไม่สามารถแสดงสตริงที่ไม่สิ้นสุดโดยการประมาณอัน จำกัด โดยไม่สูญเสียความแม่นยำตามคำถามที่ต้องการ แน่นอนว่าคุณจะได้รับความแม่นยำมากที่สุดเท่าที่คุณต้องการ - เท่าที่จะเป็นไปได้ด้วยการใช้เหตุผล - แต่นั่นก็ไม่ใช่สิ่งที่คำถามต้องการ อาจเป็นปัญหาที่เกิดขึ้นกับคำถามไม่ใช่คำตอบ
David Richerby

2
ประเด็นก็คือเราไม่ได้เป็นตัวแทนของสตริง จำกัด เราแสดงด้วยสตริงที่ไม่สิ้นสุดแต่เราต้องการเพียงส่วน จำกัด ของสตริงที่ไม่มีที่สิ้นสุดเช่นนั้นในแต่ละขั้นตอนของการคำนวณ หรือกล่าวอีกนัยหนึ่ง: ไม่มีการสูญเสียความแม่นยำเนื่องจากโครงสร้างข้อมูลเก็บข้อมูลทั้งหมดแต่แน่นอนว่าคุณไม่สามารถเข้าถึงหรือประมวลผลข้อมูลทั้งหมดในครั้งเดียว: โครงสร้างข้อมูลให้ความแม่นยำเท่าที่คุณต้องการ . คอขวดไม่ได้อยู่ที่ด้านข้างของโครงสร้างข้อมูล แต่อยู่ด้านข้างของ "ผู้บริโภค" ที่ต้องการดึงข้อมูลออกมา
Andrej Bauer

@AndrejBauer แต่คุณต้องเข้าถึงหรือประมวลผลข้อมูลทั้งหมดในครั้งเดียวเช่นนี่คือสิ่งที่การคำนวณเชิงสัญลักษณ์ทำโดยการจับ "แก่นสาร" หรือลักษณะของปริมาณมากกว่าที่จะเป็นกระแสหลักอื่น ๆ หากคุณบอกแพคเกจการคำนวณเชิงสัญลักษณ์เพื่อยืนยันว่ามันจะออกจริงทันที หากคุณใช้วิธีที่คุณอธิบายโดยใช้ตัวเลขkแรกของสแควร์รูทของ2สำหรับkใด ๆคุณจะสรุปว่า22=2k2 kตามผลลัพธ์ของคุณ (สำหรับkจำกัด ใด ๆ) เท่ากับ1.99 ..., คำตอบที่ผิด การคำนวณมีขอบเขต จำกัด 222k1.99...
โทมัส

2
@Thomas: การคำนวณเชิงสัญลักษณ์ไม่ได้แสดงถึงจำนวนจริง แต่โดยทั่วไปแล้วจะเป็นฟิลด์ย่อยของ reals ซึ่งโดยทั่วไปจะเป็นตัวเลขที่สร้างขึ้นโดยฟังก์ชันพื้นฐานและรากของพหุนาม ฟิลด์ย่อยเหล่านี้ไม่สมบูรณ์ (ปิดภายใต้ข้อ จำกัด ของลำดับ Cauchy) หรือไม่สมบูรณ์ (ปิดภายใต้ขีด จำกัด ที่คำนวณได้ของลำดับ Cauchy) การเป็นตัวแทนไม่ได้เป็นตัวแทนของ reals เว้นแต่ว่าคุณสามารถเป็นตัวแทนของ reals ทั้งหมด (คำนวณ): และการคำนวณเชิงสัญลักษณ์ล้มเหลวเงื่อนไขนี้
Andrej Bauer

1
ข้อสังเกตเหล่านี้เกี่ยวกับการนับได้ไม่เกี่ยวข้องเนื่องจาก reals ที่คำนวณได้นั้นไม่สามารถคำนวณได้
Andrej Bauer

7

มีหลายที่มีประสิทธิภาพจำนวนเหตุผลการใช้งาน แต่อย่างหนึ่งที่ได้รับการเสนอหลายครั้งและยังสามารถจัดการกับบาง irrationals ค่อนข้างดีเป็นเศษส่วนอย่างต่อเนื่อง

อ้างอิงจากFractions ต่อโดย Darren C. Collins :

ทฤษฎีบท 5-1 - การแสดงออกของเศษส่วนต่อเนื่องของจำนวนจริงนั้น จำกัด ถ้าหากจำนวนจริงเป็นจำนวนตรรกยะ

อ้างจากMathworld - เศษส่วนต่อเนื่องเป็นระยะ

... เศษส่วนต่อเนื่องเป็นระยะ ๆ ถ้ามันเป็นรากของพหุนามกำลังสอง

เช่นรากทั้งหมดสามารถแสดงเป็นเศษส่วนต่อเนื่องเป็นระยะ

นอกจากนี้ยังมีเศษส่วนต่อเนื่องที่แน่นอนสำหรับπซึ่งทำให้ฉันประหลาดใจจนกระทั่ง @AndrejBauer ชี้ให้เห็นว่าจริง ๆ แล้วมันไม่ใช่


ประโยคสุดท้ายของคุณทำให้เข้าใจผิด ไม่มีแน่นอน (หรือเป็นระยะ ๆ ) ส่วนอย่างต่อเนื่องเป็นπเศษส่วนต่อเนื่องของπคืออนันต์และ aperiodic ππ
DW

การนำเสนอเศษส่วนต่อเนื่องของ reals ถูกนำเสนอเป็นการดำเนินการสำหรับเลขคณิตจริงที่แน่นอนเมื่อครู่ที่แล้วโดย J. Vuillemin มันกลับกลายเป็นว่าไม่ได้มีประสิทธิภาพมากนักเมื่อตัวเลขมีขนาดค่อนข้างใหญ่ในไม่ช้าและยากที่จะลดขนาดลง
Andrej Bauer

เศษส่วนต่อเนื่องมีปัญหาการคำนวณแม้สำหรับการแทนจำนวนตรรกยะ - ในขณะที่พวกเขาสามารถเปรียบเทียบได้อย่างรวดเร็วโดยใช้ตัวแปรของคำสั่งพจนานุกรมและในขณะที่การจัดการเศษส่วนต่อเนื่องเพียงครั้งเดียวนั้นง่ายทั้งการเพิ่มและการคูณ การดำเนินการ
Steven Stadnicki

5

มีข้อเสนอแนะ "ของจริงที่แน่นอน" จำนวนมากในความคิดเห็น (เช่นเศษส่วนต่อเนื่องการแปลงเศษส่วนเชิงเส้น ฯลฯ ) การจับแบบทั่วไปคือในขณะที่คุณสามารถคำนวณคำตอบสำหรับสูตรได้ แต่ความเสมอภาคนั้นไม่สามารถจำแนกได้

อย่างไรก็ตามหากคุณสนใจตัวเลขเกี่ยวกับพีชคณิตคุณก็โชคดี: ทฤษฎีของเขตข้อมูลปิดจริงเสร็จสมบูรณ์ o-minimal และ decidable สิ่งนี้ได้รับการพิสูจน์โดย Tarski ในปี 1948

แต่มีการจับ คุณไม่ต้องการใช้อัลกอริธึมของ Tarski เนื่องจากอยู่ในคลาสความซับซ้อนของ NONELEMENTARY ซึ่งไม่สามารถทำได้เช่นเดียวกับอัลกอริทึมที่ใช้ไม่ได้ มีวิธีการใหม่ ๆ ที่จะทำให้ DEXP มีความซับซ้อนซึ่งเป็นวิธีที่ดีที่สุดที่เรารู้จัก

โปรดทราบว่าปัญหาคือ NP-hard เนื่องจากมี SAT อยู่ อย่างไรก็ตามไม่มีใครรู้ (หรือเชื่อ) ที่จะอยู่ใน NP

แก้ไขฉันจะพยายามอธิบายเรื่องนี้ให้มากกว่านี้

กรอบความเข้าใจทั้งหมดนี้เป็นปัญหาการตัดสินใจที่รู้จักกันในชื่อทฤษฎีความพอใจโมดูโลหรือ SMT สำหรับระยะสั้น โดยพื้นฐานแล้วเราต้องการแก้ SAT สำหรับทฤษฎีที่สร้างขึ้นจากตรรกะคลาสสิก

ดังนั้นเราเริ่มต้นด้วยตรรกะคลาสสิกอันดับแรกด้วยการทดสอบความเท่าเทียมกัน สัญลักษณ์ฟังก์ชั่นใดที่เราต้องการรวมและสัจพจน์ของพวกมันนั้นเป็นตัวกำหนดว่าทฤษฎีนั้นสามารถตัดสินใจได้หรือไม่

มีทฤษฎีที่น่าสนใจมากมายที่แสดงออกในกรอบของ SMT ตัวอย่างเช่นมีทฤษฎีโครงสร้างข้อมูล (เช่นรายการต้นไม้ไบนารีเป็นต้น) ซึ่งใช้เพื่อช่วยพิสูจน์โปรแกรมที่ถูกต้องและทฤษฎีของเรขาคณิตแบบยุคลิด แต่เพื่อจุดประสงค์ของเราเรากำลังดูทฤษฎีจำนวนแตกต่างกัน

เลขคณิตของ Presburger เป็นทฤษฎีของจำนวนธรรมชาติด้วยนอกจากนี้ ทฤษฎีนี้สามารถตัดสินใจได้

เลขคณิตของ Peano เป็นทฤษฎีของจำนวนธรรมชาติด้วยการบวกและการคูณ ทฤษฎีนี้ไม่สามารถถอดรหัสได้ตามที่พิสูจน์โดยGödel

Tarski เลขคณิตเป็นทฤษฎีของจำนวนจริงที่มีการดำเนินงานภาคสนามทั้งหมด (นอกจากนี้การลบการคูณและการหาร) ทฤษฎีนี้น่าสนใจ นี่เป็นผลลัพธ์ที่ตอบโต้ได้ง่ายในเวลานั้น คุณอาจคิดว่าเพราะมันเป็น "superset" ของจำนวนธรรมชาติมันเป็น "ยาก" แต่นี่ไม่ใช่กรณี เปรียบเทียบการเขียนโปรแกรมเชิงเส้นบน rationals กับการโปรแกรมเชิงเส้นบนจำนวนเต็มตัวอย่างเช่น

อาจไม่ชัดเจนว่าความพึงพอใจเป็นสิ่งที่คุณต้องการ แต่เป็น ตัวอย่างเช่นถ้าคุณต้องการทดสอบว่าสแควร์รูทเชิงบวกของ 2 เท่ากับรูทคิวบ์จริงของ 3 คุณสามารถแสดงสิ่งนี้ว่าเป็นปัญหาความพึงพอใจหรือไม่:

x.x>0x22=0x33=0

ex

sin{xπ|sinx=0}sin

exeix


อัลเฟรด Tarski (1948) การตัดสินใจวิธีการพีชคณิตเรขาคณิตและประถมศึกษา


2

เป็นไปได้ที่จะเป็นตัวแทนของกลุ่มตัวเลขจำนวนมากที่เรียกว่าตัวเลขเกี่ยวกับพีชคณิตโดยปฏิบัติต่อพวกเขาในฐานะรากของพหุนาม

πe


อีeixsincos{xR|sinx=0}

@ นามแฝงดูเหมือนว่าน่าสนใจจริงๆ แต่ฉันไม่คิดว่าฉันมีพื้นฐานทางคณิตศาสตร์ที่จะเข้าใจได้อย่างถูกต้อง ... คุณหมายถึงอะไรโดย "ใกล้พอที่จะเป็นจำนวนเต็ม"?
แกนอื่น ๆ

ฉันจะแก้ไขคำตอบเพื่ออธิบาย
นามแฝง

1

π2


คำตอบนี้เป็นเท็จ มีพื้นที่ทั้งหมดของเลขคณิตจริงที่แน่นอนซึ่งจะอธิบายวิธีการแสดง reals โดยคอมพิวเตอร์ การสันนิษฐานว่าของจริงจะต้องแสดงด้วยสตริง จำกัด ถูกเข้าใจผิด นอกจากนี้เรายังสามารถใช้สตริงที่ไม่สิ้นสุด อลันทัวริงเขียนถึงเรื่องนี้ในเอกสารฉบับแรกของเขาสิ่งที่เขาคิดค้นเครื่องทัวริง!
Andrej Bauer

คุณสามารถลิงค์ไปยังบทความเกี่ยวกับวิธีการจัดเก็บและจัดการสตริง infination ในคอมพิวเตอร์จริงได้หรือไม่เพราะนั่นจะเป็นคำตอบสำหรับคำถามที่ถาม มันไม่ใช่กระดาษแผ่นแรกของเขาที่ตีพิมพ์ครั้งแรกในปีพ. ศ. 2479 หนังสือพิมพ์ชิ้นนั้นคือ 2480
lPlant

คุณพูดถูกมันเป็นกระดาษ 2480 เมื่อต้องการดูว่ามีการจัดการสตริงที่ไม่สิ้นสุดคุณสามารถดูโปรโตคอล TCP / IP ได้ ฉันไม่เคยพูดความจริงทั้งหมดจะต้องเก็บไว้ในคอมพิวเตอร์
Andrej Bauer

-1

คุณไม่สามารถแสดงตัวเลขจริงทั้งหมดในคอมพิวเตอร์ แต่คุณสามารถแทนจำนวนจริงได้ คุณสามารถใช้เศษส่วนที่จะแสดงตัวเลขมากกว่าลอย คุณสามารถทำสิ่งที่ซับซ้อนมากขึ้นเช่นการแทนตัวเลขเป็นรากของพหุนามด้วยการประมาณว่าภายใต้วิธีการของนิวตันจะรวมกันเป็นจำนวน


นี่เป็นคำตอบที่ผิดซึ่งเกิดจากความไม่รู้ มีพื้นที่ทั้งหมดของเลขคณิตจริงที่แน่นอนซึ่งศึกษาวิธีการแสดงreals ทั้งหมดโดยโครงสร้างข้อมูลที่เหมาะสม
Andrej Bauer

@AndrejBauer ดังนั้นคุณแนะนำว่ามีโครงสร้างข้อมูลที่สามารถแสดงจำนวนจริงใด ๆ โครงสร้างข้อมูลใด ๆ ดังกล่าวจะต้องใช้จำนวนบิตที่ไม่ จำกัด นับไม่ได้เพื่อแสดงจำนวนใด ๆ
Alice Ryhl

1
นับจำนวนของบิตพอเพียงครั้งแรกของทั้งหมดและตั้งแต่คุณไม่จำเป็นต้องทั้งหมดของพวกเขาในครั้งเดียวหรือคุณสามารถที่จะดำเนินการให้ทั้งหมดในครั้งเดียวที่พวกเขาสามารถเก็บไว้ในเวลาเช่นเดียวกับพื้นที่
Andrej Bauer

@AndrejBauer คำตอบนี้ถูกต้องและพูดในสิ่งเดียวกันกับคุณแม้ว่าจะมีข้อมูลน้อยลง คุณไม่สามารถเป็นตัวแทนของทุกตัวเลขจริงในคอมพิวเตอร์ คุณสามารถเป็นตัวแทนของจำนวนจริงใด ๆแต่ไม่ทั้งหมดในครั้งเดียว ถ้ามีอะไรฉันจะโต้แย้งว่าคุณสามารถเป็นตัวแทนของ "หลายคน" เนื่องจากคุณสามารถเป็นตัวแทนจำนวนมากในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งและแทบจะไม่มีเลย (ในแง่คณิตศาสตร์) ในคอมพิวเตอร์นามธรรมที่เทียบเท่ากับแบบจำลองการคำนวณปกติ (Turing) เทียบเท่าเครื่อง)
Gilles 'หยุดความชั่วร้าย'

-1

มันเป็นไปได้ที่จะแทนจำนวนใดอย่างแม่นยำที่ปัจจัยการผลิตที่มีแทนได้โดยเก็บไว้เป็นสตริงของการดำเนินงานเพื่อยกตัวอย่างเช่นคุณสามารถจัดเก็บ1/3เป็นโดยการจัดการการยกเลิกของการดำเนินงานที่คุณสามารถลดความซับซ้อนของการดำเนินงานต่อไปที่จะให้คำตอบที่แน่นอนสำหรับ1 divided by 3 (1/3) * 3นอกจากนี้ยังสามารถจัดการสถานการณ์ที่คุณเคยรู้จัก irrationals เช่นπโดยการรักษาไว้ในการคำนวณของคุณ

อย่างไรก็ตามมันต้องการจำนวนหน่วยความจำที่เพิ่มขึ้นสำหรับแต่ละหมายเลขและ - สมมติว่าซิมป์ของคุณไม่สมบูรณ์ - มันอาจจะต้องใช้จำนวนเงินที่เพิ่มขึ้นเรื่อย ๆ สำหรับค่าที่คุณใช้งานอยู่เป็นจำนวนมาก


5+262=3

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