Infron · Motif 3 · 46문항 × 3회 · Python TAR. 131,072 output tokens · 기본 1,800초 · 6+1 turns. ACC는 전체 138회, Pass@1은 각 문항의 첫 유효 시도, Pass@3는 3회 내 정답으로 계산합니다.
Problem Statement
실수 전체의 집합에서 증가하는 연속함수 의 역함수 가 다음 조건을 만족시킨다. (가) 일 때, 이다. (나) 일 때, 이다. 실수 m에 대하여 기울기가 m이고 점 (1,0)을 지나는 직선이 곡선 와 만나는 점의 개수를 이라 하자. 함수 이 m=a, m=b (a<b)에서 불연속일 때, 의 값을 구하시오. (단, )
최종 정수 답을 안에 쓰세요.
Ground Truth
11
Recorded model response / solution
Reasoning Process
Recorded Python call:
import numpy as np
from scipy.optimize import bisect, brentq, minimize_scalar
import sys
Tool Output
Execution succeeded
Reasoning Process
Recorded Python call:
import numpy as np
from scipy.optimize import brentq
def F(t):
if t < -1:
return -np.exp(-t-1) - 1
elif t <= 1:
return t*(5-t*t)/2
else:
return np.exp(t-1) + 1
def dF(t):
if t < -1:
return np.exp(-t-1)
elif t < 1:
return (5-3*t*t)/2
else:
return np.exp(t-1)
def h(s,t):
return F(t)-1-s*t
def count_roots(s, tmin=-50, tmax=50, n=200001):
# sample sign changes, refine
ts=np.linspace(tmin,tmax,n)
vals=np.array([h(s,t) for t in ts])
roots=[]
for i in range(n-1):
if vals[i]==0:
roots.append(ts[i])
elif vals[i]*vals[i+1]<0:
try:
root=brentq(lambda t: h(s,t), ts[i], ts[i+1], xtol=1e-12, rtol=1e-12)
roots.append(root)
except Exception:
pass
# dedupe
uniq=[]
for r in roots:
if not uniq or abs(r-uniq[-1])>1e-6:
uniq.append(r)
return uniq, vals
for s in [0.5,0.9,1.0,1.01,1.1,1.2,1.3,1.4,1.5,2.0,2.2,2.3,2.345,2.4,2.5,3.0,5.0]:
roots,vals=count_roots(s)
print(s, len(roots), roots[:10])
Tool Output
Execution succeeded
0.5 1 [0.5391888728108891]
0.9 1 [0.7647903697880423]
1.0 1 [np.float64(1.0)]
1.01 1 [1.1477797883933167]
1.1 1 [1.5023222721453364]
1.2 1 [1.7310493313260578]
1.3 1 [1.908881989148775]
1.4 1 [2.058402369972111]
1.5 1 [2.1888341658136867]
2.0 1 [2.6783469900166605]
2.2 1 [2.8280419377682042]
2.3 1 [2.8963659552320005]
2.345 1 [2.9258810513696654]
2.4 3 [-2.152371693214323, -1.5704229787885915, 2.9609936378076207]
2.5 3 [-2.3627161803676398, -1.3919389391809234, 3.022313245324657]
3.0 3 [-2.9038136944403834, np.float64(-1.0), 3.2892814145628715]
5.0 3 [-3.8469185788040368, -0.38829144100486007, 3.994308347002122]
Reasoning Process
Recorded Python call:
import mpmath as mp
mp.mp.dps=50
f=lambda r: r*mp.log(r)-2
r0=mp.findroot(f,2.3)
print(r0, r0*mp.log(r0))
s0=r0
b=1/s0
print("s0",s0,"b",b)
# F and H at tangent t0
t0=-1-mp.log(r0)
print("t0",t0,"F", -r0-1, "s0*t0+1?", s0*t0+1)
Tool Output
Execution succeeded
2.3457507549227654624170211472773605580001892920438 2.0
s0 2.3457507549227654624170211472773605580001892920438 b 0.4263027510068627456732362073476587334492266500757
t0 -1.8526055020137254913464724146953174668984533001514 F -3.3457507549227654624170211472773605580001892920438 s0*t0+1? -3.3457507549227654624170211472773605580001892920438
Reasoning Process
Recorded Python call:
s=s0
roots,vals=count_roots(s,tmin=-20,tmax=20,n=400001)
print(len(roots), roots)
# evaluate h at candidate positive root
for r in roots:
print(r, h(s,r))
Tool Output
Execution failed
name 's0' is not defined
Reasoning Process
Recorded Python call:
s=float(s0)
roots,vals=count_roots(s,tmin=-20,tmax=20,n=400001)
print(len(roots), roots)
for r in roots:
print(r, h(s,r))
Tool Output
Execution failed
name 's0' is not defined
Reasoning Process
Recorded Python call:
import numpy as np
from scipy.optimize import brentq
import mpmath as mp
mp.mp.dps=50
r0=mp.findroot(lambda r: r*mp.log(r)-2,2.3)
s0=float(r0)
t0=-1-mp.log(r0)
print("s0",s0,"t0",float(t0))
def F(t):
if t < -1:
return -np.exp(-t-1) - 1
elif t <= 1:
return t*(5-t*t)/2
else:
return np.exp(t-1) + 1
def h(s,t):
return F(t)-1-s*t
def count_roots(s, tmin=-20, tmax=20, n=400001):
ts=np.linspace(tmin,tmax,n)
vals=np.array([h(s,t) for t in ts])
roots=[]
for i in range(n-1):
if vals[i]==0:
roots.append(ts[i])
elif vals[i]*vals[i+1]<0:
try:
root=brentq(lambda t: h(s,t), ts[i], ts[i+1], xtol=1e-14, rtol=1e-14)
roots.append(root)
except Exception:
pass
uniq=[]
for r in roots:
if not uniq or abs(r-uniq[-1])>1e-6:
uniq.append(r)
return uniq
s=s0
roots=count_roots(s)
print(len(roots), roots)
for r in roots:
print(r, h(s,r))
Tool Output
Execution succeeded
s0 2.3457507549227654 t0 -1.8526055020137255
1 [2.926367340206157]
2.926367340206157 8.881784197001252e-16
Reasoning Process
직선 위의 점을 라 하고 로 두면, 이고
일 때 로 두면 교점의 개수는 방정식
의 실근 개수와 같다. 이면 이고 이므로 교점은 1개이다.
인 경우를 가지별로 세면 다음과 같다.
- : 이므로 은 일 때 정확히 1개의 해를 갖는다.
- : 이면 1개, 이면 0개, 이면 1개이다.
- : . 여기서 의 최댓값은 이고, 그 위치는 이다.
따라서 를 만족하는 유일한 에서 왼쪽 가지에서 접하고 교점 수가 변한다. 가지별 개수를 합치면
또한 이면 항상 1개이다.
이제 이므로
- 이면 여서 , 반면 . 따라서 .
- 일 때 , 이면 , 이면 . 따라서 .
이므로
따라서
Final Model Output
11
Comparative Analysis (Pcalculus_30) (Average across runs)
Averages use reported measurements only. Missing usage is not treated as zero.
Avg Time Taken
Solar Pro 4
1143.8
Union Alpha
1001.1
Motif 3
651.7
MiMo V2.6 Pro
485.2
Grok 4.7
305.2
Muse Spark 1.3
134.4
Solar Mini 4 Preview
117.7
DeepSeek V4.1 Flash
89.6
Avg Token Usage
Solar Pro 4
138,659
Motif 3
134,043
Grok 4.7
75,813
Solar Mini 4 Preview
73,098
Muse Spark 1.3
64,249
MiMo V2.6 Pro
53,041
DeepSeek V4.1 Flash
35,840