คำถามติดแท็ก numbers

7
คุณใช้โฟลตเมื่อใดและเมื่อไหร่ที่คุณจะใช้สองครั้ง
บ่อยครั้งในประสบการณ์การเขียนโปรแกรมของฉันฉันต้องตัดสินใจว่าฉันควรใช้ทศนิยมหรือสองเท่าสำหรับจำนวนจริงของฉัน บางครั้งฉันไปลอยบางครั้งฉันไปสำหรับสองครั้ง แต่จริง ๆ แล้วรู้สึกส่วนตัวมากกว่านี้ ถ้าฉันจะเผชิญหน้าเพื่อปกป้องการตัดสินใจของฉันฉันอาจจะไม่ให้เหตุผลที่ดี คุณใช้โฟลตเมื่อใดและเมื่อไหร่ที่คุณจะใช้สองเท่า คุณมักจะใช้สองครั้งต่อเมื่อมีข้อ จำกัด ของหน่วยความจำเกิดขึ้นและคุณจะต้องลอยตัว หรือคุณใช้งานแบบลอยตลอดเว้นแต่ความต้องการความแม่นยำต้องการให้คุณใช้สองเท่าหรือไม่ มีความแตกต่างอย่างมากเกี่ยวกับความซับซ้อนในการคำนวณของเลขคณิตพื้นฐานระหว่าง float และ double หรือไม่? ข้อดีและข้อเสียของการใช้ float หรือ double คืออะไร และคุณยังใช้คู่ยาวหรือไม่
194 c++  c  floating-point  numbers 

6
เหตุใดจึงยังคงเป็นส่วนหนึ่งของภาษา Java เมื่อแนะนำเป็นสองเท่าแทน?
ในทุกที่ที่ฉันดูมันบอกว่าdoubleมันยอดเยี่ยมกว่าfloatในเกือบทุกด้าน floatถูกทำให้ล้าสมัยโดยdoubleใน Java ดังนั้นทำไมมันยังคงใช้? ฉันเขียนโปรแกรมเป็นจำนวนมากกับ Libgdx และพวกเขาบังคับให้คุณใช้float(deltaTime, ฯลฯ ) แต่ดูเหมือนว่าสำหรับฉันแล้วdoubleมันจะง่ายกว่าที่จะทำงานด้วยในแง่ของการจัดเก็บและหน่วยความจำ ฉันยังอ่านเมื่อคุณใช้การลอยและเมื่อคุณใช้สองครั้งแต่ถ้าfloatเป็นจริงที่ดีสำหรับตัวเลขที่มีตัวเลขจำนวนมากหลังจากจุดทศนิยมแล้วทำไมเราไม่สามารถใช้หนึ่งในหลายรูปแบบของdouble? มีเหตุผลว่าทำไมคนอื่นยืนยันที่จะใช้ลอยแม้ว่ามันจะไม่ได้ประโยชน์อีกต่อไป? มันเป็นงานมากเกินไปที่จะเปลี่ยนแปลงทั้งหมดหรือไม่

11
รับ 100 ตัวเลขสูงสุดจากรายการที่ไม่มีที่สิ้นสุด
เพื่อนคนหนึ่งของฉันถูกถามคำถามสัมภาษณ์นี้ - "มีการไหลของตัวเลขอย่างต่อเนื่องที่มาจากรายการตัวเลขที่ไม่มีที่สิ้นสุดซึ่งคุณจำเป็นต้องบำรุงรักษาโครงสร้างข้อมูลเพื่อส่งกลับตัวเลขสูงสุด 100 อันดับแรก ณ เวลาใดเวลาหนึ่งสมมติว่าตัวเลขทั้งหมดเป็นตัวเลขทั้งหมดเท่านั้น" นี่เป็นเรื่องง่ายคุณต้องเก็บรายการที่เรียงลำดับจากมากไปน้อยและติดตามในจำนวนที่น้อยที่สุดในรายการนั้น หากหมายเลขใหม่ที่ได้รับมีจำนวนมากกว่าจำนวนที่น้อยที่สุดคุณจะต้องลบหมายเลขที่น้อยที่สุดนั้นและใส่หมายเลขใหม่ในรายการที่เรียงตามต้องการ จากนั้นคำถามก็ถูกขยายออกไป - "คุณแน่ใจได้หรือไม่ว่าคำสั่งสำหรับการแทรกควรเป็น O (1)? เป็นไปได้หรือไม่" เท่าที่ฉันรู้แม้ว่าคุณจะเพิ่มหมายเลขใหม่ลงในรายการและจัดเรียงอีกครั้งโดยใช้อัลกอริทึมการเรียงลำดับใด ๆ มันจะดีที่สุดคือ O (logn) สำหรับ quicksort (ฉันคิดว่า) ดังนั้นเพื่อนของฉันบอกว่ามันเป็นไปไม่ได้ แต่เขาไม่มั่นใจเขาขอให้รักษาโครงสร้างข้อมูลอื่นแทนที่จะเป็นรายการ ฉันคิดว่าต้นไม้ไบนารีที่สมดุล แต่ถึงแม้คุณจะไม่ได้รับการแทรกด้วยลำดับที่ 1 ดังนั้นคำถามเดียวกันที่ฉันมีตอนนี้ ต้องการทราบว่ามีโครงสร้างข้อมูลใด ๆ ที่สามารถทำการแทรกในลำดับ 1 สำหรับปัญหาข้างต้นหรือเป็นไปไม่ได้เลย
53 numbers  big-o  puzzles 

3
ทำไม 2 ^ 16 จึงเป็นหมายเลข“ พิเศษ” [ปิด]
ตกลงฉันรู้สึกโง่ที่ถามสิ่งนี้ - แต่ในบทความของ Jeff: ทำให้หน้าจอสัมผัสโทรศัพท์ถูกต้องและระบุไว้ในคำถามหน้าจอโทรศัพท์สำคัญ 5 ข้อ : พวกเขาไม่ควรจ้องมองที่คุณเมื่อคุณถามด้วย 2 ^ 16 คือ มันเป็นหมายเลขพิเศษ พวกเขาควรรู้ ฉันเคยเป็นนักพัฒนาซอฟต์แวร์ \ software \ code monkey \ ไม่ว่าจะเกิดอะไรขึ้นซักพักแล้วและฉันไม่คิดว่าจะเจอสิ่งนี้ ฉันหมายถึงฉันสามารถนับค่าไบนารี่ได้อย่างแน่นอนการดำเนินการขั้นพื้นฐานกับพวกเขา ฯลฯ ฯลฯ แต่ฉันไม่เห็นสิ่งที่ "พิเศษ" เกี่ยวกับค่านี้
48 numbers  binary 

2
ทำไมบางภาษาปัดเศษเป็นจำนวนเต็ม EVEN ที่ใกล้ที่สุด
ภาษาโปรแกรมเช่น Scheme (R5RS) และ Python ( ดูคำถามนี้ ) ไปทางเลขจำนวนเต็มคู่ที่ใกล้ที่สุดเมื่อค่าอยู่ระหว่างจำนวนเต็มโดยรอบ อะไรคือเหตุผลเบื้องหลังสิ่งนี้ มีแนวคิดทางคณิตศาสตร์ที่ทำให้การคำนวณต่อไปนี้ง่ายขึ้นด้วยเหตุผลหรือไม่ (R5RS อ้างอิงมาตรฐานจุดลอยตัว IEEE เป็นแหล่งที่มาของพฤติกรรมนี้)

3
มีตัวเลขที่ไม่สามารถแทนได้ในฐาน 10 แต่สามารถแสดงในฐาน 2 ได้หรือไม่
C#มีdecimalประเภทที่ใช้สำหรับตัวเลขที่ต้องการการแทนค่าที่แน่นอนในฐาน 10 ตัวอย่างเช่น0.1ไม่สามารถแสดงในฐาน 2 (เช่นfloatและdouble) และจะเป็นการประมาณเสมอเมื่อเก็บไว้ในตัวแปรที่เป็นประเภทเหล่านี้ ฉันสงสัยว่าข้อเท็จจริงที่ตรงกันข้ามนั้นเป็นไปได้หรือไม่ มีตัวเลขที่ไม่สามารถแทนได้ในฐาน 10 แต่สามารถแสดงในฐาน 2 (ในกรณีนี้ฉันต้องการใช้ a floatแทน a decimalเพื่อจัดการกับมัน) หรือไม่?

1
หมายเลข 92233720368547800 ของ paypal มาจากไหน [ปิด]
มีข่าวในเรื่องเกี่ยวกับผู้ชายคนหนึ่งที่บัญชี Paypal ได้รับเครดิตโดยไม่ตั้งใจกับ $ 92,233,720,368,547,800 หมายเลขนี้มาจากไหน ข้อผิดพลาดในการเขียนโปรแกรมแบบใดที่ทำให้ตัวเลขนี้มีจำนวนมากขึ้น?

4
Little Endian ชนะแล้วหรือยัง?
เมื่อเร็ว ๆ นี้เมื่อสอนเกี่ยวกับการสู้รบของ Big vs. Little Endian นักเรียนคนหนึ่งถามว่ามันได้รับการตัดสินหรือไม่และฉันรู้ว่าฉันไม่รู้ ดูบทความ Wikipediaดูเหมือนว่าคู่ OS / สถาปัตยกรรมปัจจุบันที่นิยมที่สุดใช้ Little Endian แต่ Internet Protocol ระบุ Big Endian สำหรับการถ่ายโอนค่าตัวเลขในส่วนหัวของแพ็กเก็ต นั่นเป็นบทสรุปที่ดีของสถานะปัจจุบันหรือไม่? การ์ดเครือข่ายหรือซีพียูในปัจจุบันให้การสนับสนุนฮาร์ดแวร์สำหรับการสลับลำดับไบต์หรือไม่

5
วิธีที่มีประสิทธิภาพมากที่สุดในการจัดเก็บช่วงตัวเลขคืออะไร
คำถามนี้เกี่ยวกับจำนวนบิตที่ต้องใช้ในการจัดเก็บช่วง หรือใส่อีกวิธีหนึ่งสำหรับจำนวนบิตที่กำหนดช่วงสูงสุดที่สามารถจัดเก็บได้คือเท่าใด ลองนึกภาพเราต้องการเก็บช่วงย่อยภายในช่วง 0-255 ตัวอย่างเช่น 45-74 เราสามารถเก็บตัวอย่างด้านบนเป็นสองไบต์ที่ไม่ได้ลงชื่อ แต่มันทำให้ฉันรู้สึกว่าต้องมีข้อมูลซ้ำซ้อน เรารู้ว่าค่าที่สองมีขนาดใหญ่กว่าค่าแรกดังนั้นในกรณีที่ค่าแรกมีขนาดใหญ่จำเป็นต้องใช้บิตที่น้อยกว่าสำหรับค่าที่สองและในกรณีที่ค่าที่สองมีขนาดใหญ่จำเป็นต้องใช้บิตที่น้อยกว่าสำหรับครั้งแรก . ฉันสงสัยว่าเทคนิคการบีบอัดใด ๆ จะให้ผลลัพธ์ที่ได้เล็กน้อยดังนั้นจึงอาจเป็นคำถามที่ดีกว่าที่จะถาม "ช่วงสูงสุดที่สามารถเก็บไว้ในไบต์เดียวคืออะไร" นี่ควรใหญ่กว่าสิ่งที่ทำได้โดยจัดเก็บตัวเลขสองตัวแยกกัน มีอัลกอริธึมมาตรฐานสำหรับการทำสิ่งนี้หรือไม่?

6
ทำไมคอมพิวเตอร์ไม่เก็บตัวเลขทศนิยมเป็นจำนวนเต็มตัวที่สอง
คอมพิวเตอร์มีปัญหาในการจัดเก็บตัวเลขเศษส่วนที่ตัวส่วนเป็นส่วนอื่นที่ไม่ใช่ 2 ^ x นี่เป็นเพราะตัวเลขตัวแรกหลังจากจุดทศนิยมมีค่า 1/2, 1/4 ที่สอง (หรือ 1 / (2 ^ 1) และ 1 / (2 ^ 2)) เป็นต้น เหตุใดจึงต้องจัดการกับข้อผิดพลาดในการปัดเศษทุกประเภทเมื่อคอมพิวเตอร์สามารถจัดเก็บส่วนทศนิยมของตัวเลขเป็นจำนวนเต็มอื่น (ซึ่งถูกต้องแล้ว) สิ่งเดียวที่ฉันคิดได้ก็คือจัดการกับทศนิยมซ้ำ (ในฐาน 10) แต่อาจมีวิธีแก้ปัญหาที่เป็นไปได้ (เช่นที่เรามีอยู่กับอนันต์)

6
เครื่องกำเนิดตัวเลขสุ่มทำงานอย่างไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา ฉันแค่ไตร่ตรองเกี่ยวกับrand()ฟังก์ชั่นPHP และคิดเกี่ยวกับวิธีที่ฉันสามารถสร้างมันขึ้นมาใหม่และฉันก็ประหลาดใจอย่างสมบูรณ์ เครื่องกำเนิดตัวเลขสุ่มทำงานอย่างไร
23 random  numbers 

3
ฉันจะเปรียบเทียบค่าสองเท่าเพื่อความเท่าเทียมในการทดสอบหน่วยได้อย่างไร
SortedDictionnary<DateTime, double>ฉันเพิ่งได้รับการออกแบบโมดูลอนุกรมเวลาที่อนุกรมเวลาของฉันเป็นหลัก ตอนนี้ฉันต้องการสร้างการทดสอบหน่วยเพื่อให้แน่ใจว่าโมดูลนี้ทำงานได้ตลอดเวลาและให้ผลลัพธ์ที่คาดหวัง การดำเนินการทั่วไปคือการคำนวณประสิทธิภาพระหว่างจุดต่างๆในอนุกรมเวลา ดังนั้นสิ่งที่ฉันทำคือสร้างอนุกรมเวลาด้วยพูด {1.0, 2.0, 4.0} (ในบางวันที่) และฉันคาดว่าผลลัพธ์จะเป็น {100%, 100%} สิ่งนี้คือถ้าฉันสร้างอนุกรมเวลาด้วยตนเองด้วยค่า {1.0, 1.0} และฉันตรวจสอบความเท่าเทียมกัน (โดยการเปรียบเทียบแต่ละจุด) การทดสอบจะไม่ผ่านเนื่องจากจะมีความไม่ถูกต้องเสมอเมื่อทำงานกับการเป็นตัวแทนไบนารีของจริง หมายเลข ดังนั้นฉันตัดสินใจที่จะสร้างฟังก์ชั่นต่อไปนี้: private static bool isCloseEnough(double expected, double actual, double tolerance=0.002) { return squaredDifference(expected, actual) < Math.Pow(tolerance,2); } มีวิธีจัดการกรณีเช่นนี้อีกวิธีหนึ่งหรือไม่?

7
เหตุใด Java จึงมีพื้นฐานสำหรับตัวเลขขนาดแตกต่างกัน
ใน Java มีชนิดดั้งเดิมสำหรับbyte, short, intและlongและสิ่งเดียวกันและfloat doubleเหตุใดจึงจำเป็นต้องให้บุคคลตั้งค่าจำนวนไบต์ที่ควรใช้สำหรับค่าดั้งเดิม ไม่สามารถกำหนดขนาดแบบไดนามิกได้ขึ้นอยู่กับว่าจำนวนที่ส่งผ่านนั้นใหญ่แค่ไหน มี 2 ​​เหตุผลที่ฉันนึกถึง: การตั้งค่าขนาดของข้อมูลแบบไดนามิกหมายความว่ามันจะต้องสามารถเปลี่ยนแบบไดนามิกได้เช่นกัน สิ่งนี้อาจทำให้เกิดปัญหาประสิทธิภาพหรือไม่ บางทีโปรแกรมเมอร์อาจไม่ต้องการให้ใครบางคนสามารถใช้ตัวเลขที่ใหญ่กว่าขนาดที่กำหนดและช่วยให้พวกเขา จำกัด มันได้ ฉันยังคงคิดว่าจะได้รับประโยชน์มากมายจากการใช้งานแบบเดี่ยวintและfloatแบบเรียบง่ายมีเหตุผลบางประการที่ Java ตัดสินใจไม่ให้ไปเส้นทางนี้หรือไม่?

4
จะระบุการคำนวณจุดลอยตัวที่ไม่เสถียรได้อย่างไร?
ในตัวเลขมันเป็นสิ่งสำคัญมากที่จะสามารถระบุรูปแบบที่ไม่เสถียรและเพื่อปรับปรุงเสถียรภาพของพวกเขา จะระบุการคำนวณจุดลอยตัวที่ไม่เสถียรได้อย่างไร? ฉันกำลังทำงานกับการจำลองที่ซับซ้อนมากซึ่งมีรูปแบบตัวเลขจำนวนมากทำงานร่วมกันและฉันกำลังมองหาวิธีการระบุส่วนที่อ่อนแอของมัน ฉันกำลังทำงานกับแบบจำลองทางกายภาพที่เกี่ยวข้องกับสมการเชิงอนุพันธ์ มุมมองตานกของกระบวนการโดยรวมคือ: (Preliminary ขั้นตอน) รวบรวมข้อสังเกตทางกายภาพP กำหนดพารามิเตอร์เริ่มต้นของการจำลอง สิ่งนี้ใช้อัลกอริธึมการปรับให้เหมาะสมซึ่งเราเดินเข้าไปในพื้นที่พารามิเตอร์และค้นหาพารามิเตอร์Cเพื่อให้ฟังก์ชั่นข้อผิดพลาดบางอย่างE (F (C), P)ถูกย่อให้เล็กสุดโดยFคือจำนวนพารามิเตอร์ที่ได้รับ เสียบCในเอ็นจิ้นการจำลอง นี่คือโครงร่างออยเลอร์ของ EDP ดังนั้นในแต่ละขั้นตอนเราคำนวณเงื่อนไขที่ขับเคลื่อนไดนามิก (แต่ละอันเป็นฟังก์ชันที่ซับซ้อนอาจมีความไม่แน่นอน) และฟีดออยเลอร์ด้วยเงื่อนไขไดนามิกเหล่านี้เพื่อคำนวณถัดไป สถานะ. สิ่งนี้จะดำเนินต่อไปสำหรับจุดพันเวลา ในตอนท้ายของการจำลองเราคำนวณฟังก์ชั่นProof (S)ของสถานะSสุดท้ายและเปรียบเทียบกับปริมาณที่ต้องการ (P) ซึ่งอนุมานได้จากปริมาณที่สังเกตได้ นี่ไม่ใช่หลักฐานที่เป็นทางการของผลการตรวจสอบความน่าเชื่อถือมากขึ้น นอกจากนี้ฉันยังเห็นหอคอยแห่งการดำเนินงานที่ซับซ้อน (การคำนวณคำศัพท์ไดนามิกภายในโครงการออยเลอร์ภายในหลักฐาน ) และต้องการรับรู้“ ส่วนที่ไม่ดี” และแก้ไขได้ ฉันคาดการณ์ว่าการใช้งานการใช้งานซอฟต์แวร์ของจำนวนจุดลอยตัวที่มีความแม่นยำลดลงจะขยายความไม่แน่นอนของรูปแบบตัวเลขดังนั้นการเปรียบเทียบระหว่างการใช้งานที่แตกต่างกัน นี่เป็นเทคนิคทั่วไปในการตรวจสอบคำถามนี้หรือไม่? เป็นไปได้ไหมที่จะใช้เครื่องเสมือนอย่าง Bochs เพื่อให้ได้สิ่งนี้โดยไม่ต้องเปลี่ยนโปรแกรม? ในการจัดการกับคำถามความมั่นคงอย่างเหมาะสมบางครั้งก็เป็นที่ยอมรับได้ในการกำหนดเป้าหมายอินพุตทั่วไปของกระบวนการเชิงตัวเลขเพื่อให้สามารถปรับได้ดีกับอินพุตนั้นและอาจไม่ค่อยดีกับอินพุตที่ถูกต้อง แต่ไม่น่าเป็นไปได้ ได้รับตัวอย่างของปัจจัยการผลิตโดยทั่วไปก็เป็นไปได้ที่จะสอดแนมผลกลางบางส่วนและเตรียมความพร้อมรายละเอียดทางสถิติสำหรับพวกเขา นี่เป็นเทคนิคทั่วไปในการศึกษาปัญหาด้านความมั่นคงหรือไม่ เครื่องเสมือนมีประโยชน์สำหรับสิ่งนี้หรือไม่?

8
ค้นหา“ hole” ในรายการตัวเลข
วิธีที่เร็วที่สุดในการค้นหาจำนวนเต็ม (เล็กที่สุด) แรกที่ไม่มีอยู่ในรายการของจำนวนเต็มไม่ได้เรียง (และนั่นคือมากกว่าค่าที่เล็กที่สุดของรายการ)? วิธีดั้งเดิมของฉันคือการเรียงลำดับพวกเขาและก้าวผ่านรายการมีวิธีที่ดีกว่า

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