Skip to content

yuzhTHU/114514Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

一些无聊的数字游戏

知乎和B站上经常见到一些奇奇怪怪的数字游戏,比如:

  • 向 114514 中添加数学符号以得到一个目标整数:100 = (1 / 1 + 4) * 5 / 1 / 4
  • 向 114514 中添加数学符号以近似一个目标实数:pi ~ sin(sin(sin(1)) / (1 / 4 + 5)) - 1 + 4 = 3.14155
  • 用 114514 拟合一个目标实数:pi ~ sin(sin(sin(114514 / 114514))) / sin(114514) - (sin(sin(sin(sin(sin(114514))))) + sin(114514)) = 3.1418

本仓库致力于这些无聊的数字游戏,并初步实现了一个基于遗传算法(Genetic Programming, GP)求解“向114514中添加符号以拟合目标值”的搜索算法。之后可能考虑添加更多的搜索算法和更多更无聊的数字游戏。

iiyokoiyo

  • iiyokoiyo: 向数字串 114514 中添加数学符号,以构造一个表达式来拟合目标数字。数字的顺序不能改变,但是允许将多个数字连在一起作为一个数,如99 = 11 * 45 / (1 + 4)
  • jmcomic: 向给定数字串中添加包含等号的数学符号以构造一个等式,如 377532 -> 3 + 7 + 7 = 5 * 3 + 2。数字的顺序不能改变,但是允许将多个数字连在一起作为一个数。
  • math24: 24点,将给定数字串中的数用数学符号组合以得到 24(或其他目标值)。数字的顺序可以改变,但不允许将多个数字连在一起作为一个数。

部分搜索结果例

0 = (1 - 1) / 4 / (5 + 14)
1 = 1 / 1 - 4(5 - (1 + 4))
2 = 1 + 1 - (4 - 5 + 1) * 4
3 = 1 * 1 + (4 + 5 - 1) / 4
4 = (1 + 1 + 4 - 5 / 1) * 4
...
96 = 1 * 1 * 4 * (5 + 1) * 4
97 = 1 * 1 + 4(5 + 1) * 4
98 = (1 + 1)(45 + 1 * 4)
99 = 11 * 45 / (1 + 4)
100 = 1 / 1 * 4 * 5(1 + 4)

详见 demo.ipynb

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors