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

คณิตศาสตร์เกี่ยวข้องกับการจัดการตัวเลขภายในโปรแกรม สำหรับคำถามทางคณิตศาสตร์ทั่วไปโปรดถาม [math.stackexchange.com] (https://math.stackexchange.com/) หมายเหตุ: หากคำถามของคุณเกี่ยวกับผลลัพธ์ที่ไม่คาดคิดในการคำนวณจุดลอยตัวโปรดอ่าน [การคำนวณจุดลอยตัวเสียหรือไม่?] (https://stackoverflow.com/q/588004/1679849) ก่อน

30
คณิตศาสตร์เลขทศนิยมถูกหักหรือไม่
Наэтотвопросестьответына กองมากเกินнарусском : Вычисленияначислахсплавающейточкойнеработают พิจารณารหัสต่อไปนี้: 0.1 + 0.2 == 0.3 -> false 0.1 + 0.2 -> 0.30000000000000004 ทำไมความไม่ถูกต้องเหล่านี้เกิดขึ้น

30
วิธีที่เร็วที่สุดในการตรวจสอบว่าสแควร์รูทของจำนวนเต็มเป็นจำนวนเต็มหรือไม่
ฉันกำลังมองหาวิธีที่เร็วที่สุดในการพิจารณาว่าlongค่าเป็นจตุรัสที่สมบูรณ์แบบหรือไม่ (เช่นสแควร์รูทเป็นจำนวนเต็มอีกตัว): ฉันได้ทำมันเป็นวิธีที่ง่ายโดยใช้ในตัว Math.sqrt() ฟังก์ชั่นแต่ฉันสงสัยว่ามีวิธีที่จะทำได้เร็วขึ้นหรือไม่โดยการ จำกัด ตัวเองเป็นโดเมนจำนวนเต็มเท่านั้น การบำรุงรักษาตารางการค้นหาไม่สามารถใช้งานได้ (เนื่องจากมีจำนวนเต็มประมาณ31.5 2 ซึ่งมีค่าน้อยกว่า 2 63 ) นี่เป็นวิธีที่ง่ายและตรงไปตรงมาที่ฉันทำตอนนี้: public final static boolean isPerfectSquare(long n) { if (n < 0) return false; long tst = (long)(Math.sqrt(n) + 0.5); return tst*tst == n; } หมายเหตุ: ฉันกำลังใช้ฟังก์ชั่นนี้ในหลายปัญหาของProject Euler ดังนั้นไม่มีใครจะต้องรักษารหัสนี้ และการเพิ่มประสิทธิภาพขนาดเล็กแบบนี้สามารถสร้างความแตกต่างได้จริงเนื่องจากส่วนหนึ่งของความท้าทายคือการทำอัลกอริทึมทุกอย่างในเวลาน้อยกว่าหนึ่งนาทีและฟังก์ชั่นนี้จะต้องถูกเรียกว่าหลายล้านครั้งในปัญหาบางอย่าง ฉันได้ลองวิธีแก้ไขปัญหาต่าง ๆ แล้ว: หลังจากการทดสอบอย่างละเอียดถี่ถ้วนฉันพบว่า0.5ไม่จำเป็นต้องเพิ่มผลลัพธ์ของ Math.sqrt () …

30
ตรวจสอบว่าช่วงสองวันที่ทับซ้อนกันหรือไม่
เมื่อกำหนดช่วงวันที่สองช่วงวิธีที่ง่ายที่สุดหรือมีประสิทธิภาพมากที่สุดในการพิจารณาว่าช่วงวันที่สองช่วงนี้ทับซ้อนกันกันอย่างไร ตัวอย่างเช่นสมมติว่าเรามีช่วงแสดงโดยตัวแปร DateTime StartDate1ไปEndDate1 และ จะStartDate2EndDate2

30
คำถามสัมภาษณ์ง่ายขึ้นยากขึ้น: ตัวเลขที่ระบุ 1..100, ค้นหาหมายเลขที่หายไปที่ระบุว่า k หายไปอย่างแน่นอน
ฉันมีประสบการณ์การสัมภาษณ์งานที่น่าสนใจสักพัก คำถามเริ่มง่ายจริงๆ: ไตรมาสที่ 1 : เรามีถุงที่มีตัวเลข1, 2, 3, ... 100, แต่ละหมายเลขปรากฏขึ้นหนึ่งครั้งดังนั้นจึงมี 100 หมายเลข ตอนนี้จะมีการสุ่มเลือกหมายเลขหนึ่งออกจากกระเป๋า ค้นหาหมายเลขที่หายไป ฉันเคยได้ยินคำถามสัมภาษณ์นี้มาก่อนแน่นอนดังนั้นฉันจึงตอบอย่างรวดเร็วไปตาม: A1 : ผลรวมของตัวเลข1 + 2 + 3 + … + Nคือ(N+1)(N/2)(ดูWikipedia: ผลรวมของชุดเลขคณิต ) สำหรับผลรวมคือN = 1005050 5050ดังนั้นหากตัวเลขทั้งหมดที่มีอยู่ในถุงรวมจะตรง เนื่องจากหมายเลขหนึ่งหายไปผลรวมจะน้อยกว่านี้และความแตกต่างคือจำนวนนั้น ดังนั้นเราสามารถหาจำนวนที่ขาดหายไปในO(N)เวลาและO(1)สถานที่ เมื่อมาถึงจุดนี้ฉันคิดว่าฉันทำได้ดี แต่จู่ ๆ คำถามก็ถึงจุดเปลี่ยนที่ไม่คาดคิด: Q2 : ถูกต้อง แต่ตอนนี้คุณจะทำอย่างไรถ้าหมายเลขสองหายไป? ฉันไม่เคยเห็น / ได้ยิน / พิจารณาการเปลี่ยนแปลงนี้มาก่อนดังนั้นฉันจึงตื่นตระหนกและไม่สามารถตอบคำถามได้ ผู้สัมภาษณ์ยืนยันในการรู้กระบวนการคิดของฉันดังนั้นฉันจึงบอกว่าบางทีเราสามารถรับข้อมูลเพิ่มเติมได้โดยเปรียบเทียบกับผลิตภัณฑ์ที่คาดหวังหรืออาจทำครั้งที่สองหลังจากรวบรวมข้อมูลบางอย่างจากการผ่านครั้งแรก ฯลฯ …
1146 algorithm  math 


21
จำนวนเต็มสูงสุดของ JavaScript คือจำนวนใดที่สามารถไปได้โดยไม่สูญเสียความแม่นยำ
สิ่งนี้ถูกกำหนดโดยภาษาหรือไม่ มีค่าสูงสุดที่กำหนดหรือไม่? มันแตกต่างกันในเบราว์เซอร์ที่แตกต่างกันอย่างไร


30
คำนวณระยะทางระหว่างจุดละติจูด - ลองจิจูดสองจุดหรือไม่ (สูตร Haversine)
ฉันจะคำนวณระยะทางระหว่างจุดสองจุดที่ระบุโดยละติจูดและลองจิจูดได้อย่างไร เพื่อความกระจ่างฉันต้องการระยะทางเป็นกิโลเมตร จุดใช้ระบบ WGS84 และฉันต้องการที่จะเข้าใจความถูกต้องของวิธีการที่มีอยู่

30
การออกแบบฟังก์ชั่น f (f (n)) == -n
คำถามที่ฉันได้รับจากการสัมภาษณ์ครั้งล่าสุด: ออกแบบฟังก์ชั่นfเช่น: f(f(n)) == -n ในกรณีที่nเป็น 32 บิตลงนามจำนวนเต็ม ; คุณไม่สามารถใช้เลขคณิตจำนวนเชิงซ้อนได้ หากคุณไม่สามารถออกแบบฟังก์ชั่นดังกล่าวสำหรับตัวเลขทั้งหมดได้ให้ออกแบบให้มีขนาดใหญ่ที่สุดเท่าที่จะเป็นไปได้ ความคิดใด ๆ
841 math  integer 

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

5
ฉันจะตรวจสอบว่าการคำนวณ pi ของฉันถูกต้องได้อย่างไร
ฉันลองใช้วิธีการต่าง ๆ เพื่อใช้โปรแกรมที่ให้ตัวเลขของไพตามลำดับ ฉันลองวิธีของซีรีส์เทย์เลอร์แต่มันพิสูจน์แล้วว่ามาบรรจบกันช้ามาก (เมื่อฉันเปรียบเทียบผลลัพธ์ของฉันกับค่าออนไลน์หลังจากเวลาผ่านไป) อย่างไรก็ตามฉันพยายามอัลกอริทึมที่ดีกว่า ดังนั้นในขณะที่เขียนโปรแกรมฉันติดอยู่กับปัญหาเช่นเดียวกับอัลกอริธึมทั้งหมด: ฉันจะรู้ได้อย่างไรว่าnตัวเลขที่ฉันคำนวณมีความถูกต้อง?


24
วิธีตรวจสอบว่าตัวเลขนั้นมีค่าเป็น 2 หรือไม่
วันนี้ฉันต้องการอัลกอริทึมอย่างง่ายสำหรับการตรวจสอบว่าตัวเลขมีค่าเป็น 2 หรือไม่ อัลกอริทึมจะต้อง: ง่าย ถูกต้องสำหรับulongค่าใด ๆ ฉันมากับอัลกอริทึมง่าย ๆ นี้: private bool IsPowerOfTwo(ulong number) { if (number == 0) return false; for (ulong power = 1; power > 0; power = power << 1) { // This for loop used shifting for powers of 2, meaning // that the value …
584 c#  algorithm  math 


13
อะไรคือความแตกต่างระหว่าง '/' และ '//' เมื่อใช้สำหรับการหาร?
มีประโยชน์ในการใช้อย่างใดอย่างหนึ่งมากกว่าที่อื่น ๆ ? ใน Python 2 พวกเขาทั้งคู่ดูเหมือนจะให้ผลลัพธ์ที่เหมือนกัน: >>> 6/3 2 >>> 6//3 2

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