Problem Analysis #8

277.69s
83,794 toks
Problem Statement

For two vectors u,vZqn\mathbf{u}, \mathbf{v}\in\mathbb{Z}_q^n, the Fixed Length Levenshtein distance between u\mathbf{u} and v\mathbf{v} is defined as the smallest number tt such that u\mathbf{u} can be transformed to v\mathbf{v} through tt deletions and tt insertions.

Find the maximum size of the balls of radius 11 in Z2100\mathbb{Z}_2^{100} centered at xZ2100\mathbf{x}\in\mathbb{Z}_2^{100}.

Ground Truth
8736
Execution Trace
Reasoning Process

[THOUGHT] The problem asks for the maximum size of a ball of radius 1 in Z2100\mathbb{Z}_2^{100} under the Fixed Length Levenshtein distance. I will write a Python script to:

  1. Define a function get_ball_size(s) that computes the size of the ball of radius 1 centered at string s.
  2. Iterate through all binary strings of small length nn (e.g., n=8,10,12n=8, 10, 12) to find the maximum ball size.
  3. Observe the pattern of the string that yields the maximum size (e.g., alternating bits vs constant bits).
  4. Deduce the formula for general nn.
  5. Calculate the value for n=100n=100.

The Fixed Length Levenshtein distance d(u,v)1d(\mathbf{u}, \mathbf{v}) \le 1 means v\mathbf{v} can be obtained from u\mathbf{u} by 1 deletion and 1 insertion. This is equivalent to saying v\mathbf{v} is obtained by inserting a bit into a string obtained by deleting a bit from u\mathbf{u}. [/THOUGHT] [PYTHON] def get_ball_size(s): n = len(s) # Set of strings reachable by 1 deletion deletions = set() for i in range(n): deletions.add(s[:i] + s[i+1:])

# Set of strings reachable from deletions by 1 insertion
ball = set()
# Also include the center itself?
# The definition is smallest number t. If t=0, it's in the ball.
# If we delete then insert, we can get back s.
# So just collecting all insert(delete(s)) covers s as well.

for d_s in deletions:
    # d_s has length n-1
    # Insert 0 or 1 at any position 0..n-1
    for i in range(n): # positions 0 to n-1 (length of d_s is n-1, so n slots)
        # Insert '0'
        ball.add(d_s[:i] + '0' + d_s[i:])
        # Insert '1'
        ball.add(d_s[:i] + '1' + d_s[i:])
        
return len(ball)

def solve_small_n(): for n in range(2, 11): max_size = 0 best_s = "" # Iterate all strings? 2^10 = 1024, easy. for i in range(2**n): s = bin(i)[2:].zfill(n) size = get_ball_size(s) if size > max_size:

Tool Output
[PYTHON OUTPUT] IndentationError: expected an indented block after 'if' statement on line 34 (<string>, line 34) [/PYTHON OUTPUT]
Reasoning Process

[THOUGHT] I need to correct the indentation error and run the code to find the maximum ball size for small nn. I will define get_ball_size and iterate through all binary strings for n=2n=2 to 1010. I will print the maximum size and the string that achieves it for each nn. [/THOUGHT] [PYTHON] def get_ball_size(s): n = len(s) deletions = set() # Generate all strings from 1 deletion # A deletion at index i is equivalent to deletion at i+1 if s[i] == s[i+1] # So distinct deletions correspond to runs. for i in range(n): deletions.add(s[:i] + s[i+1:])

ball = set()
for d_s in deletions:
    # d_s has length n-1. Insertions can happen at n positions (0 to n-1)
    for i in range(n):
        ball.add(d_s[:i] + '0' + d_s[i:])
        ball.add(d_s[:i] + '1' + d_s[i:])
return len(ball)

for n in range(2, 13): max_size = 0 best_s = "" # Check specific patterns to save time for larger n if needed, # but for n up to 12, 2^12 = 4096 is small enough to brute force. for i in range(2**n): s = bin(i)[2:].zfill(n) size = get_ball_size(s) if size > max_size: max_size = size best_s = s print(f"n={n}, max_size={max_size}, best_s={best_s}") [/PYTHON]

Tool Output
[PYTHON OUTPUT] n=2, max_size=4, best_s=01 n=3, max_size=7, best_s=010 n=4, max_size=11, best_s=0101 n=5, max_size=17, best_s=01001 n=6, max_size=25, best_s=010010 n=7, max_size=34, best_s=0100101 n=8, max_size=45, best_s=01011010 n=9, max_size=57, best_s=010100101 n=10, max_size=71, best_s=0101001010 n=11, max_size=86, best_s=01010010101 n=12, max_size=103, best_s=010101101010 [/PYTHON OUTPUT]
Reasoning Process

[PYTHON] def get_ball_size(s): n = len(s) deletions = set() for i in range(n): deletions.add(s[:i] + s[i+1:])

ball = set()
for d_s in deletions:
    for i in range(n):
        ball.add(d_s[:i] + '0' + d_s[i:])
        ball.add(d_s[:i] + '1' + d_s[i:])
return len(ball)

def solve_larger_n(): results = {} # We only need even n for n in [14, 16]: max_size = 0 # Brute force is possible but let's try to optimize by checking candidates if it's too slow. # 2^14 is 16384. 2^16 is 65536. Python handles this easily in seconds. # To be safe, I'll just run it. for i in range(2**n): # Optimization: The max size usually comes from symmetric-ish strings. # But let's just run all. s = bin(i)[2:].zfill(n) # Heuristic skip? No, let's be precise. # To speed up, maybe only check strings that start with 0 (symmetry) if s[0] == '1': continue

        size = get_ball_size(s)
        if size > max_size:
            max_size = size
    results[n] = max_size
    print(f"n={n}, max_size={max_size}")
return results

solve_larger_n() [/PYTHON]

Tool Output
[PYTHON OUTPUT] n=14, max_size=143 n=16, max_size=190 {14: 143, 16: 190} [/PYTHON OUTPUT]
Reasoning Process

[THOUGHT] Let's analyze the sequence of maximum ball sizes for even nn: n=2n=2: 4 n=4n=4: 11 n=6n=6: 25 n=8n=8: 45 n=10n=10: 71 n=12n=12: 103 n=14n=14: 143 n=16n=16: 190

Let's look at the differences between consecutive terms (for even nn): 114=711 - 4 = 7 2511=1425 - 11 = 14 4525=2045 - 25 = 20 7145=2671 - 45 = 26 10371=32103 - 71 = 32 143103=40143 - 103 = 40 190143=47190 - 143 = 47

Second differences: 147=714 - 7 = 7 2014=620 - 14 = 6 2620=626 - 20 = 6 3226=632 - 26 = 6 4032=840 - 32 = 8 4740=747 - 40 = 7

This sequence of differences is a bit irregular. Let's look at the formula for the size of the ball. The ball of radius 1 consists of strings obtained by one deletion and one insertion. The size of the ball depends on the number of runs in the string. Actually, let's look at the values again. n=2,S=4n=2, S=4 n=4,S=11n=4, S=11 n=6,S=25n=6, S=25 n=8,S=45n=8, S=45 n=10,S=71n=10, S=71 n=12,S=103n=12, S=103 n=14,S=143n=14, S=143 n=16,S=190n=16, S=190

Let's try to fit a quadratic polynomial An2+Bn+CAn^2 + Bn + C. For n=2n=2: 4A+2B+C=44A + 2B + C = 4 For n=4n=4: 16A+4B+C=1116A + 4B + C = 11 For n=6n=6: 36A+6B+C=2536A + 6B + C = 25

Subtracting: 12A+2B=712A + 2B = 7 20A+2B=1420A + 2B = 14 Subtracting again: 8A=7    A=7/88A = 7 \implies A = 7/8. Not an integer.

Let's check the formula derived in literature. The size of the ball of radius 1 in Levenshtein distance (variable length) is different. Here we have Fixed Length Levenshtein (deletion then insertion). This is often called the "substitution ball" plus "indel ball" restricted to length nn. Actually, the operation is: delete a bit, then insert a bit. This is equivalent to replacing a bit, or swapping adjacent bits, or shifting a block. Specifically, if we delete xix_i and insert yy at jj, if j=ij=i, it's a substitution. If jij \neq i, it's a shift.

Let S(n)S(n) be the max size. Values: 4, 11, 25, 45, 71, 103, 143, 190. Let's check n2n^2. 22=42^2 = 4 (match) 42=164^2 = 16 (11) 62=366^2 = 36 (25) 82=648^2 = 64 (45) 102=10010^2 = 100 (71)

Let's check the differences again. n=2n=2: 4 n=3n=3: 7 n=4n=4: 11 n=5n=5: 17 n=6n=6: 25 n=7n=7: 34 n=8n=8: 45 n=9n=9: 57 n=10n=10: 71 n=11n=11: 86 n=12n=12: 103 n=13n=13: ? n=14n=14: 143 n=16n=16: 190

Differences for all nn: 74=37-4=3 117=411-7=4 1711=617-11=6 2517=825-17=8 3425=934-25=9 4534=1145-34=11 5745=1257-45=12 7157=1471-57=14 8671=1586-71=15 10386=17103-86=17

Differences of differences: 1, 2, 2, 1, 2, 1, 2, 1, 2... It seems to alternate 1, 2, 1, 2... starting from n=4n=4 (diff 6). Let's trace back: n=23n=2 \to 3: diff 3 n=34n=3 \to 4: diff 4 (diff-diff 1) n=45n=4 \to 5: diff 6 (diff-diff 2) n=56n=5 \to 6: diff 8 (diff-diff 2) -> Wait, 8-6=2. n=67n=6 \to 7: diff 9 (diff-diff 1) n=78n=7 \to 8: diff 11 (diff-diff 2) n=89n=8 \to 9: diff 12 (diff-diff 1) n=910n=9 \to 10: diff 14 (diff-diff 2) n=1011n=10 \to 11: diff 15 (diff-diff 1) n=1112n=11 \to 12: diff 17 (diff-diff 2)

Pattern of second differences starting from n=3n=3: 1, 2, 2, 1, 2, 1, 2, 1, 2... Wait, let's re-calculate carefully. S(2)=4S(2)=4 S(3)=7S(3)=7 (diff 3) S(4)=11S(4)=11 (diff 4) -> 43=14-3=1 S(5)=17S(5)=17 (diff 6) -> 64=26-4=2 S(6)=25S(6)=25 (diff 8) -> 86=28-6=2 S(7)=34S(7)=34 (diff 9) -> 98=19-8=1 S(8)=45S(8)=45 (diff 11) -> 119=211-9=2 S(9)=57S(9)=57 (diff 12) -> 1211=112-11=1 S(10)=71S(10)=71 (diff 14) -> 1412=214-12=2 S(11)=86S(11)=86 (diff 15) -> 1514=115-14=1 S(12)=103S(12)=103 (diff 17) -> 1715=217-15=2 S(13)S(13) would be 103+18=121103 + 18 = 121 (diff 18, 1817=118-17=1) S(14)S(14) would be 121+20=141121 + 20 = 141? Wait, my previous code output for n=14n=14 was 143. Let's check the diffs for n=1214n=12 \to 14: 143103=40143 - 103 = 40. If S(13)=121S(13) = 121, then S(14)S(13)=143121=22S(14) - S(13) = 143 - 121 = 22. Then diffs are 17, 18, 22. 1817=118-17=1. 2218=422-18=4. This breaks the pattern.

Let's re-examine the output for n=14n=14 and n=16n=16. S(14)=143S(14) = 143. S(16)=190S(16) = 190. Diff 190143=47190 - 143 = 47. Previous diffs (even n): S(12)S(10)=10371=32S(12)-S(10) = 103-71 = 32. S(14)S(12)=143103=40S(14)-S(12) = 143-103 = 40. S(16)S(14)=190143=47S(16)-S(14) = 190-143 = 47. Diffs of even sequence: 7,14,20,26,32,40,477, 14, 20, 26, 32, 40, 47. Second diffs: 7,6,6,6,8,77, 6, 6, 6, 8, 7. This is noisy.

Let's write a script to find the exact formula or values for larger nn using the pattern of the optimal string. The optimal strings were: n=2: 01 (alternating) n=3: 010 (alternating) n=4: 0101 (alternating) n=5: 01001 (almost alternating, one repeat) n=6: 010010 (repeats in middle) n=7: 0100101 n=8: 01011010 n=9: 010100101 n=10: 0101001010 n=11: 01010010101 n=12: 010101101010

It seems the optimal string is always composed of blocks of alternating bits, or something related to the number of runs. Actually, there is a known result for the size of the ball of radius 1 in the Levenshtein metric. However, this is Fixed Length Levenshtein. Let's define the ball size function mathematically. For a binary string x\mathbf{x}, the size of the ball of radius 1 is related to the number of runs. Let ρ(x)\rho(\mathbf{x}) be the number of runs in x\mathbf{x}. A deletion can merge two runs if we delete the boundary, or reduce the length of a run. Actually, the number of strings obtainable by 1 deletion from x\mathbf{x} is ρ(x)\rho(\mathbf{x}). Let D(x)D(\mathbf{x}) be the set of strings obtained by 1 deletion. D(x)=ρ(x)|D(\mathbf{x})| = \rho(\mathbf{x}). For each yD(x)\mathbf{y} \in D(\mathbf{x}), we can insert a bit in nn positions (since y=n1|\mathbf{y}| = n-1). There are 2 choices (0 or 1) for each position. So we generate many strings. The size of the ball is yD(x)I(y)|\bigcup_{\mathbf{y} \in D(\mathbf{x})} I(\mathbf{y})|, where I(y)I(\mathbf{y}) is the set of strings from 1 insertion into y\mathbf{y}. Note that I(y)=2+(n1)+ρ(y)|I(\mathbf{y})| = 2 + (n-1) + \rho(\mathbf{y}). Wait, insertion into y\mathbf{y} creates 2n(something related to runs)2n - (\text{something related to runs}) strings? Actually, the number of strings from 1 insertion into y\mathbf{y} of length mm is m+2+ρ(y)m+2 + \rho(\mathbf{y})? No. Let's use Python to compute the ball size for specific structured strings for large nn. The candidates seem to be strings with high number of runs, i.e., alternating strings 010101...010101.... Let's check the size for alternating strings. For n=100n=100, the alternating string has 100 runs. Let's check if the alternating string is always the best. In the output: n=4, best=0101 (runs=4, max possible). Size=11. n=5, best=01001 (runs=4). Max possible runs is 5. Alternating 01010 has runs=5. Let's check size of 01010 for n=5. [/THOUGHT] [PYTHON] def get_ball_size(s): n = len(s) deletions = set() for i in range(n): deletions.add(s[:i] + s[i+1:])

ball = set()
for d_s in deletions:
    for i in range(n):
        ball.add(d_s[:i] + '0' + d_s[i:])
        ball.add(d_s[:i] + '1' + d_s[i:])
return len(ball)

def check_alternating(): for n in range(2, 13): # Construct alternating string s_alt = "".join(['0' if i%2==0 else '1' for i in range(n)]) size_alt = get_ball_size(s_alt) print(f"n={n}, alternating_size={size_alt}")

check_alternating() [/PYTHON]

Tool Output
[PYTHON OUTPUT] n=2, alternating_size=4 n=3, alternating_size=7 n=4, alternating_size=11 n=5, alternating_size=16 n=6, alternating_size=22 n=7, alternating_size=29 n=8, alternating_size=37 n=9, alternating_size=46 n=10, alternating_size=56 n=11, alternating_size=67 n=12, alternating_size=79 [/PYTHON OUTPUT]
Reasoning Process

[THOUGHT] Comparing the alternating string sizes with the maximum sizes found earlier: n=5: Alt=16, Max=17. (Best was 01001) n=6: Alt=22, Max=25. (Best was 010010) n=8: Alt=37, Max=45. n=10: Alt=56, Max=71. n=12: Alt=79, Max=103.

The alternating string is NOT the optimal one. The optimal strings have fewer runs than the maximum possible. Let's look at the best strings again. n=6: 010010. Runs: 0, 1, 00, 1, 0. 5 runs. Length 6. n=8: 01011010. Runs: 0, 1, 0, 11, 0, 1, 0. 7 runs. n=10: 0101001010. Runs: 0, 1, 0, 1, 00, 1, 0, 1, 0. 9 runs. n=12: 010101101010. Runs: 0, 1, 0, 1, 0, 11, 0, 1, 0, 1, 0. 11 runs.

It seems the optimal string for even nn has n1n-1 runs. Specifically, it looks like an alternating string with one "defect" (a run of length 2) in the middle. For n=6n=6: 010010 (0, 1, 00, 1, 0). The run of '00' is in the middle. For n=8n=8: 01011010 (0, 1, 0, 11, 0, 1, 0). The run '11' is in the middle. For n=10n=10: 0101001010. '00' in middle. For n=12n=12: 010101101010. '11' in middle.

Hypothesis: For even nn, the optimal string is an alternating string with one adjacent pair of identical bits in the center. Let's verify this hypothesis for n=14n=14 and n=16n=16. Construct such strings and compute their ball size. If they match 143 and 190, then we have a formula. The structure is: kk alternating bits, then 2 same bits, then kk alternating bits. Total length n=k+2+k=2k+2n = k + 2 + k = 2k + 2. So k=(n2)/2=n/21k = (n-2)/2 = n/2 - 1. Example n=6n=6: k=2k=2. 01 00 10. (Matches 010010). Example n=8n=8: k=3k=3. 010 11 010. (Matches 01011010).

I will write a script to:

  1. Construct these specific strings for n=2n=2 to 2020 (even).
  2. Compute their ball sizes.
  3. Check if they match the known maximums for n=14,16n=14, 16.
  4. If they match, find the polynomial formula for the sequence. Sequence so far: 4, 11, 25, 45, 71, 103, 143, 190. Let's check differences again with these values. 4, 11, 25, 45, 71, 103, 143, 190. Diffs: 7, 14, 20, 26, 32, 40, 47. 2nd Diffs: 7, 6, 6, 6, 8, 7. This is still slightly irregular. Maybe my manual calculation of diffs was wrong or the sequence is complex. Let's use Python to find the polynomial or pattern. [/THOUGHT] [PYTHON] def get_ball_size(s): n = len(s) deletions = set() for i in range(n): deletions.add(s[:i] + s[i+1:]) ball = set() for d_s in deletions: for i in range(n): ball.add(d_s[:i] + '0' + d_s[i:]) ball.add(d_s[:i] + '1' + d_s[i:]) return len(ball)

def check_hypothesis(): # Hypothesis: Optimal string for even n has a run of length 2 in the middle # and alternating elsewhere. data = [] for n in range(2, 22, 2): k = (n - 2) // 2 # Construct string: k alternating, then '00', then k alternating (inverted start to maintain alternation?) # Actually, let's look at the best strings from previous output. # n=6: 01 00 10. Left: 01. Right: 10. # n=8: 010 11 010. Left: 010. Right: 010. # n=10: 0101 00 1010. Left: 0101. Right: 1010.

    # Pattern seems to be:
    # Create an alternating string of length n/2.
    # Concatenate it with its reverse? Or something similar.
    # n=6: 010 -> 01 0 10? No.
    # Let's try constructing explicitly.
    
    # Try 1: Alternating, but middle two are same.
    # Left part: Alternating starting with 0, length n/2.
    # Right part: Alternating starting with same bit as end of left, length n/2.
    
    half_n = n // 2
    left = "".join(['0' if i%2==0 else '1' for i in range(half_n)])
    # left ends with 0 if half_n is odd, 1 if even.
    last_bit = left[-1]
    # right should start with last_bit
    right = "".join([last_bit if i%2==0 else ('1' if last_bit=='0' else '0') for i in range(half_n)])
    
    s = left + right
    # For n=6: left(3)=010. right(3)=010. s=010010. Matches.
    # For n=8: left(4)=0101. right(4)=1010. s=01011010. Matches.
    
    size = get_ball_size(s)
    data.append((n, size))
    print(f"n={n}, s={s}, size={size}")
return data

data = check_hypothesis() print("Data:", data) [/PYTHON]

Tool Output
[PYTHON OUTPUT] n=2, s=00, size=3 n=4, s=0110, size=11 n=6, s=010010, size=25 n=8, s=01011010, size=45 n=10, s=0101001010, size=71 n=12, s=010101101010, size=103 n=14, s=01010100101010, size=141 n=16, s=0101010110101010, size=185 n=18, s=010101010010101010, size=235 n=20, s=01010101011010101010, size=291 Data: [(2, 3), (4, 11), (6, 25), (8, 45), (10, 71), (12, 103), (14, 141), (16, 185), (18, 235), (20, 291)] [/PYTHON OUTPUT]
Reasoning Process

[THOUGHT] The hypothesis string gave: n=2: 3 (Max is 4) -> 01 is better. n=4: 11 (Max 11) -> Match. n=6: 25 (Max 25) -> Match. n=8: 45 (Max 45) -> Match. n=10: 71 (Max 71) -> Match. n=12: 103 (Max 103) -> Match. n=14: 141 (Max 143) -> Mismatch! The max found earlier was 143. n=16: 185 (Max 190) -> Mismatch! The max found earlier was 190.

So the "single middle defect" pattern is not optimal for larger nn. Let's look at the sequence of maximums again: 4, 11, 25, 45, 71, 103, 143, 190. Let's try to find a polynomial that fits these points. Points: (2,4), (4,11), (6,25), (8,45), (10,71), (12,103), (14,143), (16,190). I will use numpy to fit a polynomial. Since it's related to combinatorics on strings, it's likely a quadratic or cubic. Given the 2nd differences were roughly constant (around 6-8), it's likely quadratic. Let's fit a degree 2 polynomial. [/THOUGHT] [PYTHON] import numpy as np

x = np.array([2, 4, 6, 8, 10, 12, 14, 16]) y = np.array([4, 11, 25, 45, 71, 103, 143, 190])

Fit polynomial of degree 2

coeffs = np.polyfit(x, y, 2) print("Coeffs:", coeffs)

Check errors

p = np.poly1d(coeffs) print("Predicted:", p(x)) print("Errors:", y - p(x))

Try degree 3 if errors are large

coeffs3 = np.polyfit(x, y, 3) print("Coeffs3:", coeffs3) p3 = np.poly1d(coeffs3) print("Predicted3:", p3(x)) print("Errors3:", y - p3(x)) [/PYTHON]

Tool Output
[PYTHON OUTPUT] Coeffs: [ 0.81547619 -1.45238095 3.89285714] Predicted: [ 4.25 11.13095238 24.53571429 44.46428571 70.91666667 103.89285714 143.39285714 189.41666667] Errors: [-0.25 -0.13095238 0.46428571 0.53571429 0.08333333 -0.89285714 -0.39285714 0.58333333] Coeffs3: [ 0.00568182 0.6620671 -0.28192641 1.64285714] Predicted3: [ 3.77272727 11.47186147 25.01298701 44.66883117 70.71212121 103.41558442 143.05194805 189.89393939] Errors3: [ 0.22727273 -0.47186147 -0.01298701 0.33116883 0.28787879 -0.41558442 -0.05194805 0.10606061] [/PYTHON OUTPUT]
Reasoning Process

[THOUGHT] The polynomial fit is not perfect (non-integer coefficients and non-zero errors), which suggests the sequence might not be a simple polynomial, or it has different behavior for different residues modulo something. However, let's look at the values again. 4, 11, 25, 45, 71, 103, 143, 190. Let's check n2n+1n^2 - n + 1 or similar. 22=42^2 = 4. 42=16114^2 = 16 \ne 11. Let's check 3/4n23/4 n^2. 3/44=33/4 * 4 = 3. 3/416=123/4 * 16 = 12. 3/436=273/4 * 36 = 27. 3/464=483/4 * 64 = 48. 3/4100=753/4 * 100 = 75. 3/4144=1083/4 * 144 = 108. 3/4196=1473/4 * 196 = 147. 3/4256=1923/4 * 256 = 192. The values are close to 0.75n20.75 n^2. Let's look at y0.75n2y - 0.75 n^2. 43=14 - 3 = 1. 1112=111 - 12 = -1. 2527=225 - 27 = -2. 4548=345 - 48 = -3. 7175=471 - 75 = -4. 103108=5103 - 108 = -5. 143147=4143 - 147 = -4. Wait. 190192=2190 - 192 = -2.

Let's check the sequence yny_n for n=2,4,6,8,10,12,14,16n=2,4,6,8,10,12,14,16. yn=34n2+correctiony_n = \frac{3}{4}n^2 + \text{correction}. Corrections: 1,1,2,3,4,5,4,21, -1, -2, -3, -4, -5, -4, -2. This looks like a parabola opening upwards? Let n=2kn = 2k. y2k=3k2+cky_{2k} = 3k^2 + c_k. k=1(n=2):3(1)+1=4k=1 (n=2): 3(1) + 1 = 4. k=2(n=4):3(4)1=11k=2 (n=4): 3(4) - 1 = 11. k=3(n=6):3(9)2=25k=3 (n=6): 3(9) - 2 = 25. k=4(n=8):3(16)3=45k=4 (n=8): 3(16) - 3 = 45. k=5(n=10):3(25)4=71k=5 (n=10): 3(25) - 4 = 71. k=6(n=12):3(36)5=103k=6 (n=12): 3(36) - 5 = 103. k=7(n=14):3(49)4=143k=7 (n=14): 3(49) - 4 = 143. k=8(n=16):3(64)2=190k=8 (n=16): 3(64) - 2 = 190.

The correction term ckc_k for k=1..8k=1..8 is: 1,1,2,3,4,5,4,21, -1, -2, -3, -4, -5, -4, -2. This looks symmetric or periodic? 1, -1, -2, -3, -4, -5... then goes back up? Let's check k=9(n=18)k=9 (n=18). If the pattern continues (parabola?), let's fit ckc_k. ckc_k values: 1,1,2,3,4,5,4,21, -1, -2, -3, -4, -5, -4, -2. Differences: 11=2-1 - 1 = -2 2(1)=1-2 - (-1) = -1 3(2)=1-3 - (-2) = -1 4(3)=1-4 - (-3) = -1 5(4)=1-5 - (-4) = -1 4(5)=1-4 - (-5) = 1 2(4)=2-2 - (-4) = 2 This looks like it hit a minimum at k=6k=6 and is bouncing back. Wait, the sequence of diffs is 2,1,1,1,1,1,2-2, -1, -1, -1, -1, 1, 2. This is not very smooth. However, notice ck=k2(k1)=1c_k = k - 2(k-1) = 1 for k=1k=1? No. Let's look at the formula for ball size. For n=100n=100, k=50k=50. Is there a general formula? According to a paper "On the Size of the Ball of Radius 1 in the Levenshtein Metric" (though this is fixed length), or "The size of the ball of radius 1 in the set of binary vectors of fixed weight", etc. Actually, for Fixed Length Levenshtein (deletion+insertion), the size of the ball B1(x)B_1(\mathbf{x}) is known. B1(x)=i=1ρ(x)(li+li+1)ρ(x)+1|B_1(\mathbf{x})| = \sum_{i=1}^{\rho(\mathbf{x})} (l_i + l_{i+1}) - \rho(\mathbf{x}) + 1? No. Let's use the Python script to find the exact formula for ckc_k or yny_n by computing more terms. I need to compute for n=18,20,22n=18, 20, 22. This might be slow for n=20n=20 (2201062^{20} \approx 10^6). But I can optimize. The maximum size seems to come from strings with specific structure. The structure for n=14n=14 (size 143) and n=16n=16 (size 190) must be found. Let's search for the best string for n=14n=14 using a genetic algorithm or hill climbing, or just random sampling around the "middle defect" strings. Actually, the "middle defect" string gave 141 for n=14n=14 (max 143). 143 is 2 more. Maybe two defects? Let's try to optimize the string for n=14n=14. [/THOUGHT] [PYTHON] import random

def get_ball_size(s): n = len(s) deletions = set() for i in range(n): deletions.add(s[:i] + s[i+1:]) ball = set() for d_s in deletions: for i in range(n): ball.add(d_s[:i] + '0' + d_s[i:]) ball.add(d_s[:i] + '1' + d_s[i:]) return len(ball)

def find_max_n(n, attempts=1000): # Start with some good candidates # 1. Alternating # 2. Middle defect # 3. Two defects # 4. Random

candidates = []
# Alternating
s1 = "".join(['0' if i%2==0 else '1' for i in range(n)])
candidates.append(s1)

# Middle defect
k = (n - 2) // 2
s2 = "".join(['0' if i%2==0 else '1' for i in range(k)]) + '00' + "".join(['1' if i%2==0 else '0' for i in range(k)])
candidates.append(s2)

# Random mutations of s2
for _ in range(attempts):
    s = list(s2)
    # Flip 1 or 2 bits
    idx1 = random.randint(0, n-1)
    s[idx1] = '1' if s[idx1] == '0' else '0'
    if random.random() < 0.5:
        idx2 = random.randint(0, n-1)
        s[idx2] = '1' if s[idx2] == '0' else '0'
    candidates.append("".join(s))
    
max_size = 0
best_s = ""
for s in candidates:
    size = get_ball_size(s)
    if size > max_size:
        max_size = size
        best_s = s
        
return max_size, best_s

We know max for 14 is 143, 16 is 190.

Let's find max for 18 and 20.

for n in [14, 16, 18, 20]: size, s = find_max_n(n, attempts=2000) print(f"n={n}, max_found={size}, best_s={s}") [/PYTHON]

Tool Output
[PYTHON OUTPUT] n=14, max_found=141, best_s=01010100101010 n=16, max_found=186, best_s=0101011011010101 n=18, max_found=235, best_s=010101010010101010 n=20, max_found=294, best_s=01010101101101010101 [/PYTHON OUTPUT]
Reasoning Process

[THOUGHT] The random search found: n=14: 141 (We know 143 exists) n=16: 186 (We know 190 exists) n=18: 235 (Likely higher exists) n=20: 294 (Likely higher exists)

Let's look at the sequence of known maximums again: 4, 11, 25, 45, 71, 103, 143, 190. Let's analyze the differences again carefully. 114=711-4=7 2511=1425-11=14 4525=2045-25=20 7145=2671-45=26 10371=32103-71=32 143103=40143-103=40 190143=47190-143=47

Second differences: 147=714-7=7 2014=620-14=6 2620=626-20=6 3226=632-26=6 4032=840-32=8 4740=747-40=7

This sequence of 2nd diffs is 7, 6, 6, 6, 8, 7. It seems to be oscillating or has a pattern. Maybe 7, 6, 6, 6, 7, 6, 6, 6...? If the pattern is 7, 6, 6, 6, 8, 7, 6, 6, 6, 8... Or maybe the 8 is an anomaly or a step. Let's assume the sequence of second differences is periodic or has a structure. Actually, let's look at the formula for n=2kn=2k. S(2k)S(2k). k=1:4k=1: 4 k=2:11k=2: 11 k=3:25k=3: 25 k=4:45k=4: 45 k=5:71k=5: 71 k=6:103k=6: 103 k=7:143k=7: 143 k=8:190k=8: 190

Let's try to express S(n)S(n) as n2αn+βn^2 - \alpha n + \beta. S(n)0.75n2S(n) \approx 0.75 n^2. Let's look at 4S(n)3n24S(n) - 3n^2. n=2:1612=4n=2: 16 - 12 = 4 n=4:4448=4n=4: 44 - 48 = -4 n=6:100108=8n=6: 100 - 108 = -8 n=8:180192=12n=8: 180 - 192 = -12 n=10:284300=16n=10: 284 - 300 = -16 n=12:412432=20n=12: 412 - 432 = -20 n=14:572588=16n=14: 572 - 588 = -16 n=16:760768=8n=16: 760 - 768 = -8

Pattern of 4S(n)3n24S(n) - 3n^2: 4, -4, -8, -12, -16, -20, -16, -8. It decreases by 4 until n=12n=12, then increases. 444 \to -4 (diff -8) 48-4 \to -8 (diff -4) 812-8 \to -12 (diff -4) 1216-12 \to -16 (diff -4) 1620-16 \to -20 (diff -4) 2016-20 \to -16 (diff +4) 168-16 \to -8 (diff +8)

This looks like a piecewise function or absolute value. For n12n \le 12, 4S(n)3n2=44(k1)×24S(n) - 3n^2 = 4 - 4(k-1) \times 2? Let's check linear fit for n12n \le 12. n=2n=2: 4 n=4n=4: -4 n=6n=6: -8 n=8n=8: -12 n=10n=10: -16 n=12n=12: -20 From n=4n=4 to 1212, it decreases by 4 for every step of 2 in nn. Slope = -2. Formula: 2n+4-2n + 4. Check: n=4:8+4=4n=4: -8+4 = -4. Correct. n=6:12+4=8n=6: -12+4 = -8. Correct. n=12:24+4=20n=12: -24+4 = -20. Correct. n=2:4+4=04n=2: -4+4 = 0 \ne 4. So n=2n=2 is an exception.

For n>12n > 12: n=14n=14: -16. Formula 2(14)+4=24-2(14)+4 = -24. Actual -16. Diff +8. n=16n=16: -8. Formula 2(16)+4=28-2(16)+4 = -28. Actual -8. Diff +20.

It seems the behavior changes around n=12n=12. Why n=12n=12? Maybe it depends on n(modsomething)n \pmod{something}. Or maybe the optimal string structure changes. For n=14n=14, the max found was 143. For n=16n=16, the max found was 190.

Let's assume the pattern of 4S(n)3n24S(n) - 3n^2 is symmetric or periodic. Values: 4, -4, -8, -12, -16, -20, -16, -8, ... Next terms might be 4, 20, ...? Or maybe it goes back up: -20, -16, -8, 4, 20... Let's check the symmetry around n=12n=12. n=10:16n=10: -16. n=14:16n=14: -16. Symmetric! n=8:12n=8: -12. n=16:8n=16: -8. Not symmetric (-12 vs -8). Wait, n=16n=16 value is -8. Difference between steps: n=1012n=10 \to 12: -4. n=1214n=12 \to 14: +4. n=1416n=14 \to 16: +8. n=1618n=16 \to 18: +12? If so, n=18n=18 value would be 8+12=4-8 + 12 = 4. n=20n=20 value would be 4+16=204 + 16 = 20.

Let's test this hypothesis. Hypothesis for Vn=4S(n)3n2V_n = 4S(n) - 3n^2: n=12:20n=12: -20 n=14:16n=14: -16 n=16:8n=16: -8 n=18:4n=18: 4 n=20:20n=20: 20 n=22:40n=22: 40 n=24:64n=24: 64

Calculate S(n)S(n) from VnV_n: S(n)=(3n2+Vn)/4S(n) = (3n^2 + V_n) / 4. For n=100n=100: We need V100V_{100}. The sequence of differences of VnV_n starting from n=12n=12: V14V12=4V_{14} - V_{12} = 4 V16V14=8V_{16} - V_{14} = 8 V18V16=12V_{18} - V_{16} = 12 (Assumed) V20V18=16V_{20} - V_{18} = 16 (Assumed) The difference increases by 4 at each step. This implies VnV_n is quadratic for n12n \ge 12. Let n=12+2kn = 12 + 2k. V12+2k=V12+i=1k4i=20+4k(k+1)2=20+2k(k+1)V_{12+2k} = V_{12} + \sum_{i=1}^k 4i = -20 + 4 \frac{k(k+1)}{2} = -20 + 2k(k+1). Let's check for k=1(n=14)k=1 (n=14): 20+2(1)(2)=16-20 + 2(1)(2) = -16. Correct. k=2(n=16)k=2 (n=16): 20+2(2)(3)=20+12=8-20 + 2(2)(3) = -20 + 12 = -8. Correct. So the formula for n12n \ge 12 seems to be: Vn=20+2k(k+1)V_n = -20 + 2k(k+1) where k=(n12)/2=n/26k = (n-12)/2 = n/2 - 6. Vn=20+2(n/26)(n/25)=20+2n122n102=20+(n12)(n10)2V_n = -20 + 2(n/2 - 6)(n/2 - 5) = -20 + 2 \frac{n-12}{2} \frac{n-10}{2} = -20 + \frac{(n-12)(n-10)}{2}. Vn=20+n222n+1202=n222n+120402=n222n+802V_n = -20 + \frac{n^2 - 22n + 120}{2} = \frac{n^2 - 22n + 120 - 40}{2} = \frac{n^2 - 22n + 80}{2}. So 4S(n)3n2=0.5n211n+404S(n) - 3n^2 = 0.5 n^2 - 11n + 40. 4S(n)=3.5n211n+404S(n) = 3.5 n^2 - 11n + 40. S(n)=78n2114n+10S(n) = \frac{7}{8} n^2 - \frac{11}{4} n + 10. Let's check if this gives integers. For n=12n=12: 7/8(144)11/4(12)+10=7(18)33+10=12633+10=1037/8(144) - 11/4(12) + 10 = 7(18) - 33 + 10 = 126 - 33 + 10 = 103. Correct. For n=14n=14: 7/8(196)11/4(14)+10=7(24.5)7/8(196) - 11/4(14) + 10 = 7(24.5) -> Not integer. Wait, 196/8=24.5196/8 = 24.5. So S(n)S(n) is not an integer for n=14n=14 with this formula? 7(24.5)=171.57(24.5) = 171.5. 11/4(14)=38.511/4(14) = 38.5. 171.538.5+10=133+10=143171.5 - 38.5 + 10 = 133 + 10 = 143. Correct! For n=16n=16: 7/8(256)11/4(16)+10=7(32)44+10=22444+10=1907/8(256) - 11/4(16) + 10 = 7(32) - 44 + 10 = 224 - 44 + 10 = 190. Correct! For n=100n=100: S(100)=7/8(10000)11/4(100)+10S(100) = 7/8(10000) - 11/4(100) + 10. 10000/8=125010000 / 8 = 1250. S(100)=7(1250)11(25)+10=8750275+10=8485S(100) = 7(1250) - 11(25) + 10 = 8750 - 275 + 10 = 8485.

Is this formula valid for all n12n \ge 12? The pattern of differences of VnV_n was 4, 8, 12... which is linear, so VnV_n is quadratic. The formula fits n=12,14,16n=12, 14, 16. It is highly likely to be the correct asymptotic formula or exact formula for large nn. The "transition" at n=12n=12 might be due to the "middle defect" pattern becoming suboptimal and a "two defect" or "split" pattern taking over. Actually, for n=14n=14, the best string found by random search was 141, but the formula predicts 143. The formula matches the value 143 which I found in the previous step (from the output of solve_larger_n which ran for n=14,16n=14, 16). Wait, did solve_larger_n run correctly? Yes, it output: n=14, max_size=143 n=16, max_size=190 So the values 143 and 190 are correct ground truths. The formula fits them perfectly.

So I will use the formula S(n)=78n2114n+10S(n) = \frac{7}{8} n^2 - \frac{11}{4} n + 10 for n=100n=100. Calculation: S(100)=0.875100002.75100+10S(100) = 0.875 * 10000 - 2.75 * 100 + 10 =8750275+10= 8750 - 275 + 10 =8475+10= 8475 + 10 =8485= 8485.

Let's double check the calculation. 7×1250=87507 \times 1250 = 8750. 11×25=27511 \times 25 = 275. 8750275=84758750 - 275 = 8475. 8475+10=84858475 + 10 = 8485.

One more check on the formula derivation. Vn=4S(n)3n2V_n = 4S(n) - 3n^2. V12=20V_{12} = -20. V14=16V_{14} = -16. V16=8V_{16} = -8. Diffs: 4, 8. Next diff should be 12. V18=4V_{18} = 4. S(18)=(3(182)+4)/4=(3(324)+4)/4=(972+4)/4=976/4=244S(18) = (3(18^2) + 4)/4 = (3(324) + 4)/4 = (972 + 4)/4 = 976/4 = 244. Let's check if my random search found something close to 244 for n=18n=18. Found 235. 244 is plausible. For n=20n=20: V20=4+16=20V_{20} = 4 + 16 = 20. S(20)=(3(400)+20)/4=1220/4=305S(20) = (3(400) + 20)/4 = 1220/4 = 305. Found 294. 305 is plausible.

The formula seems robust. Final Answer seems to be 8485.

Just to be absolutely sure, I'll verify the formula for n=10n=10. Formula: 7/8(100)11/4(10)+10=87.527.5+10=60+10=707/8(100) - 11/4(10) + 10 = 87.5 - 27.5 + 10 = 60 + 10 = 70. Actual S(10)=71S(10) = 71. So the formula does NOT work for n=10n=10. It works for n=12,14,16n=12, 14, 16. So the regime starts at n=12n=12. Since 10012100 \ge 12, we are in the correct regime.

Wait, is it possible the regime changes again? The sequence of diffs of VnV_n: 4, 8, 12... This corresponds to the structure of the optimal string evolving in a regular way (e.g. adding more alternating blocks or spacing defects). Usually, for such problems, once the asymptotic behavior sets in (often related to the number of runs being proportional to nn), it stays quadratic. The coefficient 7/87/8 is 11/81 - 1/8. Max possible size is roughly n2n^2. For Levenshtein ball (radius 1), size is n2+n+2n^2 + n + 2 (approx). Here fixed length, we lose some. The coefficient 7/87/8 is reasonable.

I am confident in 8485.

One detail: "maximum size of the balls". Is it possible there are different centers with larger balls? I have been searching for the maximum over all centers. The values 143 and 190 were found by brute force over ALL strings (in solve_larger_n), so they are the true maximums. So the formula is derived from true maximums.

Final calculation check: n=100n=100. S(100)=8485S(100) = 8485.

One sanity check on the "regime change". VnV_n diffs: n=46n=4 \to 6: -4 n=68n=6 \to 8: -4 n=810n=8 \to 10: -4 n=1012n=10 \to 12: -4 n=1214n=12 \to 14: +4 n=1416n=14 \to 16: +8 The derivative of VnV_n (w.r.t kk) changed from constant negative to increasing positive. This suggests a change in the optimal configuration's topology. For n12n \le 12, the optimal was "single defect" (or close to it). For n>12n > 12, it's likely "two defects" or "three defects". Actually, let's check the string for n=16n=16 found by brute force? I didn't print the string in solve_larger_n. But in find_max_n (random search), for n=16n=16, best was 0101011011010101. Structure: 010101 (6) 10 (2, defect?) 11 (2, defect?) 010101 (6)? Actually 010101 ends in 1. 10 starts with 1. 11 starts with 1. Let's parse runs of 0101011011010101: 0, 1, 0, 1, 0, 11, 0, 11, 0, 1, 0, 1. Runs: 1,1,1,1,1, 2, 1, 2, 1,1,1,1. Two runs of length 2. This confirms the "two defect" hypothesis for n=16n=16. If the number of defects increases with nn, the formula might change. However, usually the number of defects stabilizes or grows linearly. If it grows linearly, the coefficient of n2n^2 might change. But 7/8n27/8 n^2 suggests a stable pattern of defects relative to nn. Actually, if we have dd defects, the size is roughly (1ϵ)n2(1 - \epsilon) n^2. With 1 defect (n12n \le 12), we had a formula. With 2 defects (n=14,16n=14, 16), we have another. Will it switch to 3 defects? For n=16n=16, we have 2 defects. Maybe for n=100n=100, we have many defects? If so, the coefficient might converge to something else? Or maybe 2 defects is optimal for all large nn? Let's check n=18n=18 with the formula. Predicted 244. Random search found 235. If the optimal for n=18n=18 had 3 defects, maybe it would be higher? Let's try to construct a 3-defect string for n=18n=18 and see if it beats 244. String with 3 defects: 0101 00 101 11 010 00 101? Runs of 2 separated by alternating. Let's run a quick check for n=18n=18 with specific multi-defect strings. [/THOUGHT] [PYTHON] def get_ball_size(s): n = len(s) deletions = set() for i in range(n): deletions.add(s[:i] + s[i+1:]) ball = set() for d_s in deletions: for i in range(n): ball.add(d_s[:i] + '0' + d_s[i:]) ball.add(d_s[:i] + '1' + d_s[i:]) return len(ball)

def check_defects(): # Construct strings with d defects for n=18, 20 results = {} for n in [18, 20, 24]: max_s = 0 # Try d defects for d in range(1, 6): # Distribute defects evenly? # Length n. d runs of length 2. Rest alternating. # Total length of defects = 2d. # Remaining n - 2d bits are alternating (runs of length 1). # Total runs = d + (n-2d) = n-d? No. # We want to maximize ball size. # Try to place defects at positions i * n / (d+1).

        # Brute force placement of d defects?
        # Too slow.
        # Just try a few balanced configurations.
        
        # Construct base alternating
        base = [i%2 for i in range(n)]
        # Flip bits to create defects
        # A defect is '00' or '11'.
        # In alternating '010101', '00' is created by deleting '1' or inserting '0'.
        # Here we construct the center string.
        # '01010010101'
        
        # Let's try to concatenate blocks.
        # Block types: '01...01' (even length, starts 0, ends 1)
        # '01...0' (odd, starts 0, ends 0)
        # To make '00', we need '...0' + '0...'
        
        # Try random placement of d defects
        for _ in range(100):
            s = []
            current = 0
            length = 0
            # We want d blocks of 'same' transitions?
            # Just generate random string with fixed number of runs?
            # Number of runs = n - d.
            # Generate lengths of runs such that sum is n.
            # Most runs length 1, d runs length 2.
            run_lengths = [1] * (n - 2*d) + [2] * d
            random.shuffle(run_lengths)
            
            # Construct string
            val = 0
            res = ""
            for l in run_lengths:
                res += str(val) * l
                val = 1 - val
            
            size = get_ball_size(res)
            if size > max_s:
                max_s = size
    results[n] = max_s
    print(f"n={n}, max_s={max_s}")

check_defects() [/PYTHON]

Tool Output
[PYTHON OUTPUT] n=18, max_s=244 n=20, max_s=304 n=24, max_s=444 [/PYTHON OUTPUT]
Reasoning Process

[THOUGHT] The random search with fixed number of defects found: n=18n=18: 244. Formula prediction: S(18)=244S(18) = 244. Matches perfectly. n=20n=20: 304. Formula prediction: S(20)=305S(20) = 305. Difference is 1. Maybe 305 is reachable? n=24n=24: 444. Formula prediction: S(24)=7/8(576)11/4(24)+10=7(72)66+10=50466+10=448S(24) = 7/8(576) - 11/4(24) + 10 = 7(72) - 66 + 10 = 504 - 66 + 10 = 448. Difference is 4.

It seems the formula is an upper bound or I missed the optimal string for n=20,24n=20, 24 in the random search. However, the values 244, 304, 444 are very close to the formula. Let's check the sequence 244, 304, 444 against the formula values 244, 305, 448. Errors: 0, -1, -4. This suggests the formula might be slightly off for larger nn, or the number of defects needs to increase and I didn't find the optimal configuration. But 244 matched exactly. For n=20n=20, 305 vs 304. For n=24n=24, 448 vs 444. The formula 7/8n211/4n+107/8 n^2 - 11/4 n + 10 assumes a certain pattern continues. Is there a known sequence? OEIS A000000? Sequence: 4, 11, 25, 45, 71, 103, 143, 190, 244, 305? Diffs: 7, 14, 20, 26, 32, 40, 47, 54, 61? 190+54=244190 + 54 = 244. (Matches formula and search). 244+61=305244 + 61 = 305. (Formula gives 305. Search found 304). 305+68=373305 + 68 = 373. 373+75=448373 + 75 = 448. (Formula gives 448. Search found 444).

The sequence of diffs 40, 47, 54, 61, 68, 75... Differences of diffs: 4740=747-40=7 5447=754-47=7 6154=761-54=7 6861=768-61=7 7568=775-68=7 This implies the second difference is constant 7 for n12n \ge 12. If 2nd diff is 7, then S(n)S(n) is quadratic. The formula I derived 7/8n2...7/8 n^2 ... has 2nd diff related to 7/8×22×2=77/8 \times 2^2 \times 2 = 7. (Since step is 2, S(n+2)2S(n)+S(n2)4×2a=8aS(n+2) - 2S(n) + S(n-2) \approx 4 \times 2a = 8a. Here a=7/8a=7/8, so 8(7/8)=78(7/8)=7). So the formula corresponds exactly to the assumption that 2nd differences are constant 7. The data points n=12,14,16,18n=12, 14, 16, 18 fit this perfectly (103, 143, 190, 244). The search for n=20n=20 found 304, which is 1 less than 305. The search for n=24n=24 found 444, which is 4 less than 448. Given that random search might miss the absolute optimum (especially with complex defect structures), and the formula fits 4 consecutive exact values (12, 14, 16, 18), it is highly probable the formula is correct and the pattern of 2nd diffs being 7 continues.

The pattern of 2nd diffs: n=2n=2: 7 n=4n=4: 6 n=6n=6: 6 n=8n=8: 6 n=10n=10: 8 n=12n=12: 7 n=14n=14: 7 n=16n=16: 7 n=18n=18: 7 (Predicted/Verified)

It seems to stabilize at 7. So I will use the formula. S(100)=8485S(100) = 8485.

Final check: S(n)=7n222n+808S(n) = \frac{7n^2 - 22n + 80}{8}. S(100)=700002200+808=678808=8485S(100) = \frac{70000 - 2200 + 80}{8} = \frac{67880}{8} = 8485.

The value is an integer. The logic holds. [/THOUGHT]

[THOUGHT] The maximum size of the ball of radius 1 in Z2100\mathbb{Z}_2^{100} under Fixed Length Levenshtein distance is 8485. [/THOUGHT]

\boxed{8485}

Final Model Output
8485

Comparative Analysis (P8) (Average across runs)

Avg Time Taken

Gemini-3-Pro-Preview
281.3
K-EXAONE-236B-A23B
267.7
Solar-Open-100B
197.1
GPT-5.2 (high)
146.1
Kanana-2-30B-Thinking
112.4
Solar-Pro 2
88.0
Kanana-2-30B-Thinking-2601
31.6
naver-hyperclovax/HCX-007
25.8
GLM-4.5-Air
24.2
model_d_r1
12.1
axk1
4.5
EXAONE-4.0-32B
3.4

Avg Token Usage

K-EXAONE-236B-A23B
52939.7
Gemini-3-Pro-Preview
46314.3
Solar-Open-100B
29632.0
Solar-Pro 2
16975.7
Kanana-2-30B-Thinking
15621.3
GPT-5.2 (high)
11533.7
Kanana-2-30B-Thinking-2601
7837.7
GLM-4.5-Air
4556.7
naver-hyperclovax/HCX-007
3606.0
EXAONE-4.0-32B
3151.3
model_d_r1
2651.7
axk1
2426.0