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모델
기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.
프로젝트
중근과 멀리 떨어진 근을 시험하고 최고차 계수 영이나 표현 불가능한 결과를 거부하며 판별식이 음수이면 빈 목록을 반환합니다.
적용하기 전에 검토하세요
실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
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는 수치 구현이 익숙한 예제 밖에서 어떻게 동작하는지 검토하는 개발자를 위한 Windows AI 코딩 작업 공간입니다. 프로젝트 파일에서 시작하여 앱이 기대하는 입력 범위를 설명하세요. 계산과 함께 결과를 의도대로 표현할 수 없을 때 호출부의 응답도 검토하도록 연결 모델에 요청하세요.
이차방정식 근 계산 루틴이 구체적인 예제입니다. 크기가 크게 다른 계수는 작은 교과서 예제로 놓치는 동작을 드러낼 수 있으므로 수정 요청 전에 대표 데이터를 가져오세요. 중근, 거부되는 최고차 계수, 지원하지 않는 결과의 보고 방식을 논의하세요. 이런 질문은 공식 변경을 주변 소프트웨어 계약과 연결합니다.
결과 소스를 살펴보고 적절한 경우 잔차 검사를 포함해 원본 데이터로 프로젝트 검사를 실행하세요. 그럴듯하게 표시된 숫자만으로 구현이 한계를 충족한다는 충분한 근거로 삼지 마세요. RootEquinox는 필요한 인증 정보로 지원되는 OpenAI 호환 또는 Anthropic 엔드포인트와 작동합니다. 설정 서비스가 제공한다면 제한 없는 모델을 선택할 수 있으며 도구와 컨텍스트 한도는 서버에 따라 달라집니다. 목표는 명시적 사례로 평가할 수 있는 수치 변경이며 거부 동작도 성공 출력만큼 주의 깊게 검토해야 합니다.
수치 패치 평가
부정확한 결과 보고에 무엇을 첨부해야 하나요?
입력 계수, 기대 동작, 불일치를 재현할 충분한 정보를 제공하세요. 호출부의 결과 사용 방식도 포함하세요. 그러면 근거 없이 공식을 교체하도록 유도하는 대신 구체적인 소프트웨어 문제를 제시할 수 있습니다.
수치 코드의 거부 경로를 살펴보는 이유는 무엇인가요?
입력이 잘못되거나 유용한 결과를 표현할 수 없을 때 호출부에는 정의된 응답이 필요합니다. 명확한 실패가 오해를 부르는 출력이나 예상 밖 예외로 바뀌지 않도록 계산과 해당 경로를 함께 검토하세요.
잔차 검사로 모든 근의 정확성을 증명할 수 있나요?
반환값에 대한 근거를 보태지만 보편적 증명은 아닙니다. 기준 사례 및 입력 경계 검사와 함께 사용하고 작은 잔차 하나를 완전한 검증으로 받아들이지 말고 허용 오차 전제를 검토하세요.
일반 예제를 통과하는 재작성을 수락해야 하나요?
작업의 계기가 된 어려운 사례를 확인한 뒤에만 수락하세요. 크게 다른 크기, 중근, 명시한 잘못된 입력을 프로젝트 테스트에 유지하세요. 교체를 수락하기 전에 실패 동작 변경을 검토하세요.
RootEquinox · 업데이트 2026-10-25