设为首页收藏本站

爱吱声

 找回密码
 注册
搜索
查看: 1974|回复: 1
打印 上一主题 下一主题

[其他] 关于24点游戏 ,这里坦白交代一下

[复制链接]
  • TA的每日心情
    开心
    2015-12-23 04:08
  • 签到天数: 2 天

    [LV.1]炼气

    跳转到指定楼层
    楼主
    发表于 2014-2-27 12:34:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 Highway 于 2014-2-27 14:14 编辑

    今天看到@gbdashen 朋友的小游戏帖,不禁想起多年前我写的一些东西。那时候还在西西河科技版当版主,用Java写了个程序来测试JDK 1.5多线程功能上是否比以前的版本有提升,和河里的各位程序员们一同切磋探讨。后来还还对比C#的多线程的scalability写了些东西,时间长了,都已经有些模糊了。

    【原创】一个游戏引发的无血案 [ Highway ]

    【原创】用计算机求解一个儿时的游戏 [ Highway ]

    今天在公司,用手机登陆到家里的服务器,居然找到了以前的JAR文件,然后想办法偷运到公司里,悄悄运行了一下,给出了gbdashen朋友提出的那些问题的答案。

    小时候的游戏我们只用加减乘除,因为那时候我们不会别的。其实应该是所有Binary Operator都应该可以使用的。也就是说一个算符要求两个算子为输入,然后产生一个结果,只要是这样就可用。Unary and ternary的算符不符合规则,不能使用。比如SIN(), ABS(), Floor()这些就不和规则。

    为了口算能够检查结果,我的程序里加入了乘方和取余数两个不算太复杂的算符,所以解决方案更多一些。

    这个小程序能对付自由定义的游戏,比如5张扑克拼80点,6张扑克拼250等等等等,比较Generic。但是有一个问题我没有完成,那就是最后结果相似答案筛选的步骤。

    比如说吧,@苏双 同学出的四张牌:4, 7, 8, 10,我的答案呼噜噜一大堆,从算机角度看是不一样的,但我们人一看就知道好多算法是一回事。这个我也懒的去弄了。

    Solution is: (10*8)%(7*4)
    Solution is: ((8*7)%10)*4
    Solution is: ((7%4)%10)*8
    Solution is: ((10%7)%4)*8
    Solution is: (8*10)%(4*7)
    Solution is: 10+((8*7)/4)
    Solution is: (8/(4/7))+10
    Solution is: 8*((7-4)%10)
    Solution is: ((7*10)%8)*4
    Solution is: 10+((7*8)/4)
    Solution is: 8*((7%4)%10)
    Solution is: 8*((10%7)%4)
    Solution is: ((10*7)%8)*4
    Solution is: 10+(8/(4/7))
    Solution is: ((7%10)-4)*8
    Solution is: 4*((8*7)%10)
    Solution is: 8*(7%(4%10))
    Solution is: 10+(7/(4/8))
    Solution is: (7%4)*(8%10)
    Solution is: 8*(7-(4%10))
    Solution is: 8*((10-7)%4)
    Solution is: ((8/4)*7)+10
    Solution is: (7%(4%10))*8
    Solution is: ((7*8)%10)*4
    Solution is: (7*(8/4))+10
    Solution is: ((8*7)/4)+10
    Solution is: (10*8)%(4*7)
    Solution is: ((7%10)%4)*8
    Solution is: (8*10)%(7*4)
    Solution is: 4*((7*8)%10)
    Solution is: 10+(8*(7/4))
    Solution is: 10+(7*(8/4))
    Solution is: ((7/4)*8)+10
    Solution is: (8*(7/4))+10
    Solution is: (7/(4/8))+10
    Solution is: (8%10)*(7%4)
    Solution is: ((7-4)%10)*8
    Solution is: ((10-7)%4)*8
    Solution is: (8%10)*(7-4)
    Solution is: ((7*8)/4)+10
    Solution is: 8*((7%10)-4)
    Solution is: 10+((7/4)*8)
    Solution is: 4*((7*10)%8)
    Solution is: 8*((7%10)%4)
    Solution is: 10+((8/4)*7)
    Solution is: (7-4)*(8%10)
    Solution is: (7-(4%10))*8
    Solution is: 4*((10*7)%8)


    另外,我的算法是“穷尽法”,7张以下扑克牌游戏还能从容应对。如果再多几张,那么计算量巨大,计算机也都吃不消了。这种算法显然还是非常粗糙的。

    评分

    参与人数 3爱元 +16 收起 理由
    如若 + 2 强!
    雪个 + 8 谢谢分享
    燕庐敕 + 6 涨姿势

    查看全部评分

  • TA的每日心情
    开心
    2015-12-23 04:08
  • 签到天数: 2 天

    [LV.1]炼气

    沙发
     楼主| 发表于 2014-2-27 22:46:41 | 只看该作者
    如果4张扑克玩24点,那么理论上牌型组合有28561,忽略花色拿走重复的话就只有1820种了,其中无解的有458种,将近1/4。

    如果玩12点,那么无解情况会少很多, 15点,16点也都比24强。
    1. No solution combinations for 12 are: 285
    2. No solution combinations for 13 are: 406
    3. No solution combinations for 14 are: 371
    4. No solution combinations for 15 are: 380
    5. No solution combinations for 16 are: 396
    6. No solution combinations for 17 are: 580
    7. No solution combinations for 18 are: 423
    8. No solution combinations for 19 are: 623
    9. No solution combinations for 20 are: 448
    10. No solution combinations for 21 are: 566
    11. No solution combinations for 22 are: 576
    12. No solution combinations for 23 are: 712
    13. No solution combinations for 24 are: 458
    14. No solution combinations for 25 are: 746
    15. No solution combinations for 26 are: 657
    16. No solution combinations for 27 are: 684
    17. No solution combinations for 28 are: 649
    18. No solution combinations for 29 are: 878
    19. No solution combinations for 30 are: 627
    20. No solution combinations for 31 are: 930
    21. No solution combinations for 32 are: 714
    22. No solution combinations for 33 are: 785
    23. No solution combinations for 34 are: 928
    24. No solution combinations for 35 are: 801
    复制代码

    手机版|小黑屋|Archiver|网站错误报告|爱吱声   

    GMT+8, 2024-4-29 06:48 , Processed in 0.056262 second(s), 25 queries , Gzip On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表