西西河

主题:【原创】用计算机求解一个儿时的游戏 -- Highway

共:💬39 🌺28
分页树展主题 · 全看首页 上页
/ 3
下页 末页
      • 家园 Sure, but it will cost you a bit

        say, a million bucks. Deal?

        刚刚做了一个循环,把所有可能的情况算了一把,结论如下(还没有验证过)

        如果只允许四则运算,那么

        In theory, total combination number is: 28561 (13*13*13*13)

        Remove duplication, effective combination becomes: 1820 (say 7,7,4,2 = 2,4,7,7 = 2,7,4,4=...)

        Total no-solution combination number is: 458

        如果加入取余数,那么

        Total no-solution combination number is: 218

        等回家我把code整理一下,我下午下载了一套扑克牌gif图案,在加个简单的GUI,这个游戏不就齐活儿了吗!你要是愿意的话,给我个email地址,我给你一道发过去,怎么样?

        • 家园 一个循环需时多久?

          有没有可能在一个范围内(如1-100)验证一下,哪个数字的无解率最低?

          也算是验证一下这个问题:

          毕竟只能是四则运算,那种小数,开方什么的高级货不算的。24是个偶数而且可以被3整除,同样的数字有12,36等,我猜3张牌算12,5张牌算36不错。就4张牌而言,算出24也许是4张牌的排列组合中最多的。一点愚见。

          • 家园 对于四张牌,全循环一次40秒左右,

            在我的core 2 duo E6300的机器上。如果使用多线程,时间降到了28秒左右。

            三张牌算12成功率不高,5张牌计算量太大,随便给5个数字,方案都一大堆。比如说7,13,6,2,5,结果为

            Solution is: 5-13=-8-->6-7=-1-->-1-2=-3-->-3*-8=24
            Solution is: 7-13=-6-->5*2=10-->-6+10=4-->6*4=24
            Solution is: 13-7=6-->5-2=3-->6*3=18-->18+6=24
            Solution is: 7-6=1-->13-5=8-->1+2=3-->3*8=24
            Solution is: 2*5=10-->7-13=-6-->-6+10=4-->6*4=24
            Solution is: 2*5=10-->6-7=-1-->13--1=14-->10+14=24
            Solution is: 5*2=10-->6-13=-7-->7--7=14-->14+10=24
            Solution is: 5*2=10-->10+7=17-->13+17=30-->30-6=24
            Solution is: 5*2=10-->6-10=-4-->13--4=17-->17+7=24
            Solution is: 2*5=10-->7-6=1-->1+10=11-->13+11=24
            Solution is: 5*2=10-->7+13=20-->10+20=30-->30-6=24
            Solution is: 13+7=20-->2*5=10-->10-6=4-->20+4=24
            Solution is: 5*2=10-->7-6=1-->1+13=14-->10+14=24
            Solution is: 2+7=9-->13-5=8-->9-6=3-->3*8=24
            Solution is: 6-7=-1-->-1-2=-3-->5-13=-8-->-3*-8=24
            ...
            Solution is: 5-2=3-->3*6=18-->18-7=11-->13+11=24
            Solution is: 7-13=-6-->5-2=3-->6*3=18-->18--6=24
            Solution is: 7*2=14-->13+5=18-->18-14=4-->6*4=24
            Solution is: 13-6=7-->2*5=10-->7+10=17-->7+17=24
            Solution is: 6-13=-7-->7--7=14-->5*2=10-->10+14=24
            Solution is: 5*2=10-->13-6=7-->7+7=14-->10+14=24
            Solution is: 2*5=10-->13-6=7-->7+7=14-->10+14=24
            Solution is: 13*5=65-->7+65=72-->72/6=12-->2*12=24
            Solution is: 5*2=10-->10+7=17-->17+13=30-->30-6=24
            Solution is: 2-6=-4-->7+-4=3-->13-5=8-->8*3=24
            Solution is: 7-6=1-->2+1=3-->13-5=8-->3*8=24
            Solution is: 13-6=7-->2*5=10-->10+7=17-->17+7=24
            Solution is: 13-5=8-->2+7=9-->9-6=3-->8*3=24
            Solution is: 6-2=4-->7-4=3-->13-5=8-->3*8=24
            Solution is: 5*13=65-->7+65=72-->2*72=144-->144/6=24
            Solution is: 13+7=20-->20-6=14-->2*5=10-->14+10=24
            Solution is: 13-5=8-->2+7=9-->9-6=3-->3*8=24
            Solution is: 5*2=10-->10-13=-3-->7+-3=4-->6*4=24
            Solution is: 5*2=10-->13+10=23-->23+7=30-->30-6=24
            Solution is: 2*5=10-->10+7=17-->17-6=11-->13+11=24
            Solution is: 2*5=10-->13-10=3-->7-3=4-->6*4=24
            Solution is: 5+7=12-->6/12=0.5-->13/0.5=26-->26-2=24
        • 家园 太牛了。能不能索性做成一个游戏供人在网上玩?
    • 家园 1 3 4 6有没有解?
    • 家园 呵呵,那个帖子我回过的

      一般说来算24只用四则运算,不过即使这样也有很多很tricky的解,比如你的第一个case:7,7,4,4实际是有解的。我先不说答案,有兴趣消磨时间的同学可以想想。

      另外解的同构性判断是个很复杂的问题,在组合搜索中,这种判断往往比寻找解的算法还要难。比较简单的处理办法可能是找到一个解就返回,不去追求多个解。

      搜索树的修剪也是门大学问,如何优先发展有希望的分支,正是AI中的A*算法的核心问题。

      花!

      • 家园 can you...

        can you give me your code in C here?

        • 家园 很久以前的事情了

          代码手上已经没有了,您给点时间我再重新写一下。

          • 家园 呵呵,详细地说说你原来的算法俺就知足了。。。

            首先流涕地感谢泰让前辈和highway前辈的回复,记得好像60年代有位网友发过一贴:林彪教我当师长。今儿个俺也想发一帖:泰让highway教我学编程。怎奈还要考上1个月的试,哎!而我面壁是出了名的慢,这不,前些日子泰让兄让俺去学逆波兰表达式(俺可真得从头学起),刚刚窥了个门径,现在highway兄又把java代码(java俺的问题可更多)发了上来,这些好东东可得慢慢品。最后要说的是,俺面壁编程纯粹是出于由衷的兴趣才烦请解答,两位兄台千万不要误了正事才好。

            另外解的同构性判断是个很复杂的问题,在组合搜索中,这种判断往往比寻找解的算法还要难。

            什么叫解的同构性判断?譬如。。。

            呵呵,详细地说说你原来的算法俺就知足了,不必重新写代码啦。

            再次感谢。

      • 家园 类似的还有5 5 5 1
        • 家园 计算了一下

          如果只是四则运算,答案是

          The solution is: (5 - (1 / 5)) * 5

          The solution is: 5 * (5 - (1 / 5))

          如果可以用取余数,那么多一个答案

          The solution is: (5 * 5) - (1 % 5)

          如果还可以用乘方,那么又多一个

          The solution is: (5 * 5) - (1 ^ 5)

分页树展主题 · 全看首页 上页
/ 3
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河