คำถามติดแท็ก numerical-algorithms

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 …

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

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

2
อัลกอริทึมรากที่สองจำนวนเต็มความแม่นยำตามอำเภอใจ?
มีอัลกอริทึมย่อยที่รู้จักกันดีสำหรับการคำนวณพื้นของสแควร์รูทของnจำนวนเต็มบิตหรือไม่? อัลกอริธึมไร้เดียงสานั้นจะเป็นอย่างไร def sqrt(x): r = 0 i = x.bit_length() // 2 while i >= 0: inc = (r << (i+1)) + (1 << (i*2)) if inc <= x: x -= inc r += 1 << i i -= 1 return r สิ่งนี้ต้องใช้O(n)การวนซ้ำแต่ละอันเกี่ยวข้องกับการเพิ่มที่เป็นO(n)เวลาดังนั้นจึงเป็นO(n^2)เวลาโดยรวม มีอะไรเร็วขึ้นไหม ฉันรู้ว่าในกรณีของการคูณมีอัลกอริทึมพิเศษที่ทำได้ดีกว่าเวลากำลังสอง แต่ฉันไม่สามารถหาอะไรสำหรับรากที่สอง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.