V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hondaya  ›  全部回复第 1 页 / 共 1 页
回复总数  1
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 。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1307 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 23:41 · PVG 07:41 · LAX 15:41 · JFK 18:41
Developed with CodeLauncher
♥ Do have faith in what you're doing.