คำถามติดแท็ก floating-point

2
เหตุใด C ประเภทโมฆะจึงไม่คล้ายกับประเภทที่ว่าง / ด้านล่าง
Wikipedia ตลอดจนแหล่งข้อมูลอื่น ๆ ที่ฉันได้พบรายการvoidประเภทC เป็นหน่วยประเภทซึ่งตรงข้ามกับประเภทที่ว่างเปล่า ฉันพบว่ามันสับสนเพราะฉันคิดว่าvoidเหมาะกับนิยามของประเภทที่ว่าง / ล่าง ไม่มีค่านิยมใด ๆ อยู่voidเท่าที่ฉันจะบอกได้ ฟังก์ชั่นที่มีประเภทคืนค่าเป็นโมฆะระบุว่าฟังก์ชั่นจะไม่ส่งคืนสิ่งใดดังนั้นจึงสามารถทำงานได้เพียงผลข้างเคียงเท่านั้น ตัวชี้ชนิดvoid*เป็นชนิดย่อยของชนิดตัวชี้อื่นทั้งหมด นอกจากนี้การแปลงไปยังและจากvoid*ใน C นั้นเป็นนัย ผมไม่แน่ใจว่าถ้าจุดสุดท้ายมีบุญใด ๆ ที่เป็นข้อโต้แย้งสำหรับvoidการเป็นประเภทที่ว่างเปล่าเป็นมากหรือน้อยเป็นกรณีพิเศษที่มีความสัมพันธ์ไม่มากที่จะvoid*void ในทางกลับกันvoidตัวมันเองไม่ใช่ประเภทย่อยของประเภทอื่นทั้งหมดซึ่งเท่าที่ฉันสามารถบอกได้ว่าเป็นข้อกำหนดสำหรับประเภทที่จะเป็นประเภทด้านล่าง
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

7
เหตุใดการแทนค่าทศนิยมจึงใช้เครื่องหมายบิตแทนส่วนเติม 2 เพื่อระบุจำนวนลบ
พิจารณาการเป็นตัวแทนจุดคงที่ซึ่งถือได้ว่าเป็นกรณีที่เลวลงของจำนวนลอย เป็นไปได้ทั้งหมดที่จะใช้ส่วนเติมเต็มของ 2 สำหรับจำนวนลบ แต่ทำไมบิตเครื่องหมายจำเป็นสำหรับตัวเลขจุดลอยตัวทำไม mantissa บิตไม่ควรใช้ส่วนเติมเต็มของ 2? นอกจากนี้ทำไมบิตเลขชี้กำลังใช้อคติแทนการแทนขนาด - เซ็นชื่อ (คล้ายกับบิตแมนทิสสา) หรือการเป็นตัวแทนของ 2 อัปเดต: ขออภัยถ้าฉันไม่ได้ทำให้ชัดเจน ฉันกำลังค้นหาสาเหตุของการแสดงจุดลอยตัวที่มีรูปร่างอย่างไร หากไม่มีการดำเนินการอย่างจริงจังในการแลกเปลี่ยนระหว่างทางเลือกใครบางคนสามารถอธิบายแง่มุมทางประวัติศาสตร์ของการเป็นตัวแทนจุดลอยตัวได้หรือไม่?

4
ความไม่เสมอภาคที่เกิดจากความไม่ถูกต้องลอย
อย่างน้อยใน Java ถ้าฉันเขียนรหัสนี้: float a = 1000.0F; float b = 0.00004F; float c = a + b + b; float d = b + b + a; boolean e = c == d; ค่าของจะฉลิตรsอี ฉันเชื่อว่าสิ่งนี้เกิดจากข้อเท็จจริงที่ว่าการลอยตัวนั้นมีข้อ จำกัด อย่างมากในการแสดงตัวเลขอย่างแม่นยำ แต่ฉันไม่เข้าใจว่าทำไมแค่การเปลี่ยนตำแหน่งของaอาจทำให้ความไม่เท่าเทียมนี้เกิดขึ้นeeefalsefalsefalseaaa ฉันลด s เป็นหนึ่งในทั้งบรรทัด 3 และ 4 ดังด้านล่างค่าของeอย่างไรก็ตามกลายเป็นt r u e :bbbeeetruetruetrue float …

1
การปัดเศษจุดลอยตัว
หมายเลขจุดลอยตัว IEEE-754 สามารถ <1 (เช่นสร้างด้วยตัวสร้างตัวเลขสุ่มซึ่งสร้างตัวเลข> = 0.0 และ <1.0) คูณด้วยจำนวนเต็มบางส่วน (ในรูปจุดลอยตัว) เพื่อให้ได้จำนวนเท่ากับหรือมากกว่า จำนวนเต็มนั้นเนื่องจากการปัดเศษ กล่าวคือ double r = random() ; // generates a floating point number in [0, 1) double n = some_int ; if (n * r >= n) { print 'Rounding Happened' ; } นี่อาจเทียบเท่ากับการบอกว่ามี N และ R อยู่เช่นนั้นถ้า …

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

9
แสดงจำนวนจริงโดยไม่สูญเสียความแม่นยำ
จุดลอยตัวปัจจุบัน (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} ความคิดอื่น ๆ ?

1
เหตุใดความแม่นยำของโมดูลัสจุดลอยตัวจึงมีความสำคัญ
ภาษาถิ่น Smalltalk ส่วนใหญ่ใช้โมดูลัสลอยตัวแบบไร้เดียงสาที่ไร้เดียงสา (fmod / เศษที่เหลือ) ฉันเพิ่งเปลี่ยนสิ่งนี้เพื่อปรับปรุง Squeak / Pharo และท้ายที่สุดการยึดติดกับ Smalltalk อื่น ๆ ตามมาตรฐาน (IEEE 754, ISO / IEC 10967) ตามที่ฉันได้ทำไปแล้วสำหรับการดำเนินการจุดลอยตัวอื่น ๆ อย่างไรก็ตามสำหรับการยอมรับการเปลี่ยนแปลงเหล่านั้นฉันคาดหวังว่าการยึดมั่นในมาตรฐานจะไม่เพียงพอที่จะโน้มน้าวใจเพื่อน ๆ ของฉันดังนั้นการอธิบายว่าในสถานการณ์ใดความแม่นยำนี้สำคัญมากจะช่วยฉันได้มาก ฉันไม่สามารถหาตัวอย่างที่ดีได้ด้วยตัวเองจนถึงตอนนี้ มีใครที่นี่รู้หรือไม่ว่าทำไม / เมื่อ / ที่ไหน (IOW ซึ่งอัลกอริทึมใด) ความแม่นยำของโมดูลัสนั้นจะสำคัญหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.