รากสมการกำลังสองที่เสถียร
คำนวณรากจริงของสมการกำลังสองด้วยสัมประสิทธิ์ปรับสเกลและสูตรลดการหักล้างเชิงตัวเลข.
from math import isfinite, sqrt, copysign
def real_roots(a, b, c):
original = (a, b, c)
if not all(type(v) in (int, float) and isfinite(v) for v in original) or a == 0:
raise ValueError("finite quadratic coefficients")
if c == 0:
other = -b / a
if not isfinite(other) or (b != 0 and other == 0):
raise ValueError("unrepresentable root")
return [0.0] if b == 0 else sorted((0.0, other))
scale = max(map(abs, original))
a, b, c = (v / scale for v in original)
if any(v != 0 and s == 0 for v, s in zip(original, (a,b,c))):
raise ValueError("coefficient underflow")
d = b*b - 4*a*c
if d < 0: return []
if d == 0: roots = [-b / (2*a)]
else:
q = -0.5 * (b + copysign(sqrt(d), b))
if q == 0: raise ValueError("root underflow")
roots = sorted((q/a, c/q))
if not all(map(isfinite, roots)) or (original[2] != 0 and 0 in roots):
raise ValueError("unrepresentable roots")
return rootsโมเดล
ตั้งค่า endpoint ที่รองรับ OpenAI หรือ Anthropic ด้วย URL หลักและคีย์ API หากจำเป็น ทดสอบการเชื่อมต่อ เซิร์ฟเวอร์โมเดลในเครื่องต้องทำงานอยู่ เครื่องมือระยะไกลอาจส่งข้อมูลแยกต่างหาก
โปรเจกต์
ทดสอบรากซ้ำและรากห่างกัน พร้อมปฏิเสธสัมประสิทธิ์นำเป็นศูนย์หรือผลที่แทนค่าไม่ได้ และคืนรายการว่างเมื่อดิสคริมิแนนต์ติดลบ.
ตรวจสอบก่อนนำไปใช้
เปรียบเทียบการทำงานจริงกับผลที่คาดหวัง หากการตรวจสอบไม่ผ่าน ให้หาสาเหตุก่อนแก้ไขเพิ่มเติม
from math import isfinite, sqrt, copysign
def real_roots(a, b, c):
original = (a, b, c)
if not all(type(v) in (int, float) and isfinite(v) for v in original) or a == 0:
raise ValueError("finite quadratic coefficients")
if c == 0:
other = -b / a
if not isfinite(other) or (b != 0 and other == 0):
raise ValueError("unrepresentable root")
return [0.0] if b == 0 else sorted((0.0, other))
scale = max(map(abs, original))
a, b, c = (v / scale for v in original)
if any(v != 0 and s == 0 for v, s in zip(original, (a,b,c))):
raise ValueError("coefficient underflow")
d = b*b - 4*a*c
if d < 0: return []
if d == 0: roots = [-b / (2*a)]
else:
q = -0.5 * (b + copysign(sqrt(d), b))
if q == 0: raise ValueError("root underflow")
roots = sorted((q/a, c/q))
if not all(map(isfinite, roots)) or (original[2] != 0 and 0 in roots):
raise ValueError("unrepresentable roots")
return rootsตรวจพฤติกรรมตัวเลขให้เกินกว่ากรณีทั่วไป
RootEquinox คือพื้นที่ทำงานเขียนโค้ดด้วย AI บน Windows สำหรับนักพัฒนาที่ต้องตรวจพฤติกรรมโค้ดคำนวณนอกตัวอย่างที่ทำงานได้ง่าย เริ่มจากไฟล์โปรเจกต์และอธิบายช่วงอินพุตที่แอปคาดหวัง ขอให้โมเดลที่เชื่อมต่อตรวจทั้งการคำนวณและการตอบสนองของผู้เรียกเมื่อไม่อาจแทนผลตามต้องการ
รูทีนหารากสมการกำลังสองเป็นงานที่เป็นรูปธรรมหนึ่งอย่าง สัมประสิทธิ์ที่ขนาดต่างกันมากอาจเผยพฤติกรรมที่ตัวอย่างเล็กในห้องเรียนไม่พบ จึงควรนำชุดข้อมูลตัวแทนมาคุยก่อนขอแก้ อภิปรายรากซ้ำ สัมประสิทธิ์นำที่ปฏิเสธ และวิธีที่ฟังก์ชันรายงานผลที่ไม่รองรับ คำถามเหล่านี้เชื่อมการเปลี่ยนสูตรที่เสนอกับข้อกำหนดซอฟต์แวร์รอบข้าง
ตรวจซอร์สที่ได้และรันการตรวจโปรเจกต์ด้วยชุดข้อมูลเดิม รวมการตรวจค่าคงเหลือเมื่อเหมาะสม อย่าถือว่าตัวเลขแสดงผลที่ดูสมเหตุสมผลเพียงพอเป็นหลักฐานว่าโค้ดเป็นไปตามขอบเขต RootEquinox ทำงานกับปลายทางที่รองรับ OpenAI-compatible หรือ Anthropic พร้อมข้อมูลรับรองเมื่อจำเป็น โมเดลแบบไม่จำกัดเป็นตัวเลือกเมื่อบริการที่ตั้งค่ามีให้ ส่วนเครื่องมือและขีดจำกัดบริบทขึ้นกับเซิร์ฟเวอร์ เป้าหมายคือการแก้โค้ดตัวเลขที่ประเมินกับกรณีชัดเจนได้ โดยตรวจพฤติกรรมปฏิเสธรอบคอบเท่าผลสำเร็จ
ประเมินแพตช์โค้ดตัวเลข
ควรแนบอะไรกับรายงานผลไม่แม่นยำ?
ให้สัมประสิทธิ์อินพุต พฤติกรรมที่คาดหวัง และรายละเอียดพอทำซ้ำความคลาดเคลื่อนได้ รวมวิธีที่ผู้เรียกใช้ผล เพื่อให้ผู้ช่วยมีปัญหาซอฟต์แวร์เป็นรูปธรรม แทนคำเชิญเปลี่ยนสูตรโดยไม่มีหลักฐาน
ทำไมต้องตรวจเส้นทางปฏิเสธในโค้ดตัวเลข?
ผู้เรียกต้องมีการตอบสนองที่กำหนดเมื่ออินพุตผิดหรือไม่อาจแทนผลที่ใช้ได้ ตรวจเส้นทางเหล่านั้นร่วมกับการคำนวณ เพื่อไม่ให้แพตช์แทนความล้มเหลวที่ชัดเจนด้วยผลชวนเข้าใจผิดหรือข้อยกเว้นไม่คาดคิด
การตรวจค่าคงเหลือพิสูจน์ว่าทุกรากแม่นยำได้หรือไม่?
ให้หลักฐานเกี่ยวกับค่าที่คืน แต่ไม่ใช่ข้อพิสูจน์สากล ใช้ร่วมกับกรณีอ้างอิงและการตรวจขอบเขตอินพุต และตรวจสมมติฐานความคลาดเคลื่อนที่ยอมรับ แทนถือว่าค่าคงเหลือเล็กค่าเดียวคือการยืนยันครบถ้วน
ควรยอมรับโค้ดเขียนใหม่ที่ผ่านตัวอย่างทั่วไปหรือไม่?
หลังตรวจกรณียากที่เป็นเหตุให้งานนี้เกิดขึ้นเท่านั้น เก็บขนาดที่ต่างกันมาก รากซ้ำ และอินพุตผิดที่กำหนดไว้ในการทดสอบโปรเจกต์ ตรวจพฤติกรรมล้มเหลวที่เปลี่ยนก่อนรับวิธีทดแทน
RootEquinox · อัปเดตล่าสุด 2026-10-25