news 2026/8/4 20:09:39

DeekSeek 3.2和Qwen 3.5生成的求解24点程序对比

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DeekSeek 3.2和Qwen 3.5生成的求解24点程序对比

编写python程序,算出1-13的全部4个数字组合(允许重复)加减乘除能够算出24点的组合及对应的表达式,比如1234:1x2x3x4,用A、B、C、D表示10、11、12、13,用圆括号表示运算优先级。用最简的高效语句完成,无需注释。不做别的

fromitertoolsimportproduct,permutations,combinations_with_replacementfromfractionsimportFractiondefsolve_24():ops=['+','-','*','/']numbers=list(range(1,14))results=[]card_map={10:'A',11:'B',12:'C',13:'D'}fornumsincombinations_with_replacement(numbers,4):found=set()fora,b,c,dinset(permutations(nums)):forop1,op2,op3inproduct(ops,repeat=3):expressions=[f'(({a}{op1}{b}){op2}{c}){op3}{d}',f'({a}{op1}({b}{op2}{c})){op3}{d}',f'({a}{op1}{b}){op2}({c}{op3}{d})',f'{a}{op1}(({b}{op2}{c}){op3}{d})',f'{a}{op1}({b}{op2}({c}{op3}{d}))']forexprinexpressions:try:ifabs(eval(expr)-24)<1e-6:disp=exprfork,vincard_map.items():disp=disp.replace(str(k),v)found.add(disp)breakexceptZeroDivisionError:continueiffound:breakiffound:breakiffound:num_str=''.join(card_map.get(x,str(x))forxinnums)results.append(f'{num_str}:{",".join(found)}')returnresultsforlineinsolve_24():print(line)

第一版用eval函数实现效率比较低,继续提示

要求不用eval函数实现,其他要求同上。

fromitertoolsimportproduct,permutations,combinations_with_replacementdefsolve_24():ops={'+':lambdax,y:x+y,'-':lambdax,y:x-y,'*':lambdax,y:x*y,'/':lambdax,y:x/yify!=0elseNone}numbers=list(range(1,14))results=[]card_map={10:'A',11:'B',12:'C',13:'D'}fornumsincombinations_with_replacement(numbers,4):found=set()fora,b,c,dinset(permutations(nums)):forop1,op2,op3inproduct(ops.keys(),repeat=3):f1,f2,f3=ops[op1],ops[op2],ops[op3]try:ifabs(f3(f2(f1(a,b),c),d)-24)<1e-6:expr=f'(({a}{op1}{b}){op2}{c}){op3}{d}'fork,vincard_map.items():expr=expr.replace(str(k),v)found.add(expr)elifabs(f3(f1(a,f2(b,c)),d)-24)<1e-6:expr=f'({a}{op1}({b}{op2}{c})){op3}{d}'fork,vincard_map.items():expr=expr.replace(str(k),v)found.add(expr)elifabs(f2(f1(a,b),f3(c,d))-24)<1e-6:expr=f'({a}{op1}{b}){op2}({c}{op3}{d})'fork,vincard_map.items():expr=expr.replace(str(k),v)found.add(expr)elifabs(f2(a,f3(f1(b,c),d))-24)<1e-6:expr=f'{a}{op1}(({b}{op2}{c}){op3}{d})'fork,vincard_map.items():expr=expr.replace(str(k),v)found.add(expr)elifabs(f1(a,f2(b,f3(c,d)))-24)<1e-6:expr=f'{a}{op1}({b}{op2}({c}{op3}{d}))'fork,vincard_map.items():expr=expr.replace(str(k),v)found.add(expr)except(TypeError,ZeroDivisionError):continueiffound:breakiffound:breakiffound:num_str=''.join(card_map.get(x,str(x))forxinnums)results.append(f'{num_str}:{",".join(found)}')returnresultsforlineinsolve_24():print(line)

再测试Qwen

编写python程序,算出1-13的全部4个数字组合(允许重复)加减乘除能够算出24点的组合及对应的表达式,每行只要输出1个解,比如1234:1x2x3x4,用A、B、C、D表示10、11、12、13,用圆括号表示运算优先级。要求不用eval函数实现, 用最简的高效语句完成,无需注释。不做别的

第一版程序报错,

执行报错, File "C:\d\qw24.py", line 26, in solve r5 = calc(calc(a, calc(b, c, o1), o2), d, o3) File "C:\d\qw24.py", line 5, in calc if op == '+': return a + b ~~^~~ TypeError: unsupported operand type(s) for +: 'NoneType' and 'int',

请改正,不做别的。其他要求不变

fromitertoolsimportproduct,permutations ops=['+','-','*','/']nums=list(range(1,14))defcalc(a,b,op):ifaisNoneorbisNone:returnNoneifop=='+':returna+bifop=='-':returna-bifop=='*':returna*bifop=='/':returna/bifb!=0elseNonedeffmt(n):returnstr(n)ifn<10else'ABCD'[n-10]defsolve():forcomboinproduct(nums,repeat=4):forpinset(permutations(combo)):a,b,c,d=pforo1inops:foro2inops:foro3inops:r1=calc(calc(calc(a,b,o1),c,o2),d,o3)ifr1==24:print(f"{fmt(a)}{fmt(b)}{fmt(c)}{fmt(d)}:(({fmt(a)}{o1}{fmt(b)}){o2}{fmt(c)}){o3}{fmt(d)}");continuer2=calc(calc(a,b,o1),calc(c,d,o2),o3)ifr2==24:print(f"{fmt(a)}{fmt(b)}{fmt(c)}{fmt(d)}:({fmt(a)}{o1}{fmt(b)}){o3}({fmt(c)}{o2}{fmt(d)})");continuer3=calc(a,calc(b,calc(c,d,o2),o1),o3)ifr3==24:print(f"{fmt(a)}{fmt(b)}{fmt(c)}{fmt(d)}:{fmt(a)}{o3}({fmt(b)}{o1}({fmt(c)}{o2}{fmt(d)}))");continuer4=calc(a,calc(calc(b,c,o1),d,o2),o3)ifr4==24:print(f"{fmt(a)}{fmt(b)}{fmt(c)}{fmt(d)}:{fmt(a)}{o3}(({fmt(b)}{o1}{fmt(c)}){o2}{fmt(d)})");continuer5=calc(calc(a,calc(b,c,o1),o2),d,o3)ifr5==24:print(f"{fmt(a)}{fmt(b)}{fmt(c)}{fmt(d)}:({fmt(a)}{o2}({fmt(b)}{o1}{fmt(c)})){o3}{fmt(d)}");continuesolve()

第二版算出了所有解,继续提示

每个4数字组合只要输出一个解,每个组合都按数字大小排序,比如13CD,注意将if r1 == 24改为if abs(r1 -24)<1e-6等,不做别的,其他要求不变,

最终程序如下

fromitertoolsimportcombinations_with_replacement,permutations ops=['+','-','*','/']nums=list(range(1,14))defcalc(a,b,op):ifaisNoneorbisNone:returnNoneifop=='+':returna+bifop=='-':returna-bifop=='*':returna*bifop=='/':returna/bifb!=0elseNonedeffmt(n):returnstr(n)ifn<10else'ABCD'[n-10]defsolve():forcomboincombinations_with_replacement(nums,4):found=Falseforpinset(permutations(combo)):iffound:breaka,b,c,d=pforo1inops:iffound:breakforo2inops:iffound:breakforo3inops:r1=calc(calc(calc(a,b,o1),c,o2),d,o3)ifr1isnotNoneandabs(r1-24)<1e-6:print(f"{fmt(combo[0])}{fmt(combo[1])}{fmt(combo[2])}{fmt(combo[3])}:(({fmt(a)}{o1}{fmt(b)}){o2}{fmt(c)}){o3}{fmt(d)}")found=True;breakr2=calc(calc(a,b,o1),calc(c,d,o2),o3)ifr2isnotNoneandabs(r2-24)<1e-6:print(f"{fmt(combo[0])}{fmt(combo[1])}{fmt(combo[2])}{fmt(combo[3])}:({fmt(a)}{o1}{fmt(b)}){o3}({fmt(c)}{o2}{fmt(d)})")found=True;breakr3=calc(a,calc(b,calc(c,d,o2),o1),o3)ifr3isnotNoneandabs(r3-24)<1e-6:print(f"{fmt(combo[0])}{fmt(combo[1])}{fmt(combo[2])}{fmt(combo[3])}:{fmt(a)}{o3}({fmt(b)}{o1}({fmt(c)}{o2}{fmt(d)}))")found=True;breakr4=calc(a,calc(calc(b,c,o1),d,o2),o3)ifr4isnotNoneandabs(r4-24)<1e-6:print(f"{fmt(combo[0])}{fmt(combo[1])}{fmt(combo[2])}{fmt(combo[3])}:{fmt(a)}{o3}(({fmt(b)}{o1}{fmt(c)}){o2}{fmt(d)})")found=True;breakr5=calc(calc(a,calc(b,c,o1),o2),d,o3)ifr5isnotNoneandabs(r5-24)<1e-6:print(f"{fmt(combo[0])}{fmt(combo[1])}{fmt(combo[2])}{fmt(combo[3])}:({fmt(a)}{o2}({fmt(b)}{o1}{fmt(c)})){o3}{fmt(d)}")found=True;breaksolve()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/4 20:09:27

从智能马桶到淋浴房,九牧凭什么持续领跑行业

文 | 螳螂观察作者 | 佘凯文当家装进入“细节决胜”的时代&#xff0c;卫浴空间的升级早已超越“基本洗漱”的范畴&#xff0c;成为衡量居住品质的核心指标之一。浴室的干湿分离、洗漱区的镜柜收纳、马桶的智能化&#xff0c;这些曾经被视为“加分项”的配置&#xff0c;如今正…

作者头像 李华
网站建设 2026/8/4 20:09:38

算法分类全景图:从基础计算到人工智能的完整演进体系

引言&#xff1a;算法的多维世界算法是计算机解决问题的系统化方法&#xff0c;是连接问题与解决方案的智慧桥梁。随着计算机科学的发展&#xff0c;算法已从最初的简单计算工具演变为驱动现代智能系统的核心技术引擎。本文将从基础计算算法出发&#xff0c;逐步深入至人工智能…

作者头像 李华
网站建设 2026/8/3 16:16:43

并发编程笔记1

上下文切换即使是单核处理器也支持多线程执行代码&#xff0c;CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间&#xff0c;因为时间片非常短&#xff0c;所以CPU通过不停地切换线程执行&#xff0c;让我们感觉多个线程是同时执行的&#xff0…

作者头像 李华
网站建设 2026/8/3 7:14:51

智能体认知动力学:从生成式控制到拓扑几何求解的理论综述

“智能体认知动力学”是张家林于 2026 年提出的一个人工智能认知理论体系&#xff0c;核心是将 AI 的认知基础从传统概率论的统计近似升级为几何动力学的精准建模&#xff0c;以生成式控制为手段、拓扑几何求解为核心&#xff0c;实现了人工智能从 “下一词预测” 的经验式生成…

作者头像 李华
网站建设 2026/8/3 7:12:51

3步解锁AI视频生成:ComfyUI-WanVideoWrapper技术指南

3步解锁AI视频生成&#xff1a;ComfyUI-WanVideoWrapper技术指南 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper ComfyUI-WanVideoWrapper是一款基于ComfyUI的视频生成插件&#xff0c;提供文本…

作者头像 李华