pplx 数学模式 gpt-4o ,sonnet 3.5 都能算对。
from itertools import permutations, product
# Define the numbers and target
numbers = [10, 10, 4, 4]
target = 24
# Define possible operations
operations = ['+', '-', '*', '/']
# Function to evaluate an expression
# This function will safely evaluate the expression
# It will return None if the expression is invalid (e.g., division by zero)
def safe_eval(expr):
try:
return eval(expr)
except ZeroDivisionError:
return None
# Try all permutations of numbers and operations
for nums in permutations(numbers):
for ops in product(operations, repeat=3):
# Generate all possible expressions with parentheses
expressions = [
f'({nums[0]} {ops[0]} {nums[1]}) {ops[1]} ({nums[2]} {ops[2]} {nums[3]})',
f'(({nums[0]} {ops[0]} {nums[1]}) {ops[1]} {nums[2]}) {ops[2]} {nums[3]}',
f'({nums[0]} {ops[0]} ({nums[1]} {ops[1]} {nums[2]})) {ops[2]} {nums[3]}',
f'{nums[0]} {ops[0]} (({nums[1]} {ops[1]} {nums[2]}) {ops[2]} {nums[3]})',
f'{nums[0]} {ops[0]} ({nums[1]} {ops[1]} ({nums[2]} {ops[2]} {nums[3]}))'
]
for expr in expressions:
if safe_eval(expr) == target:
print(expr)
我找到了一个解决方案:
((10 * 10) - 4) ÷ 4 = 24
让我解释一下计算过程:
首先计算括号内的 10 * 10 = 100
然后减去 4 ,得到 96
最后除以 4 ,得到最终结果 24
这个算式完美地使用了所有给定的数字(两个 10 和两个 4 ),并且只使用了基本的运算符(乘号、减号和除号)来得到目标数字 24 。