宫廷玉液酒, 大锤加大锤加小锤除以(大锤除以小锤) 一杯
用于使用给定的一系列基础元素和运算方法生成指定范围内的整数的表达式(至少一个),通常生成的表达式仅包含最少次数的运算。
例如给定元素如下:
- 小锤 = 40
- 大锤 = 80
- 宫廷玉液酒 = 180
指定使用运算方法为{加, 减, 乘, 除, 模},生成范围为 [0,100],则可以为50生成表达式(宫廷玉液酒减大锤)除以(大锤除以小锤)
。
默认提供了下列运算方法:
- 加 (+)
- 减 (-)
- 乘 (*)
- 除 (/) (不会生成非整除的情况)
- 模 (%) (不会生成负数模运算)
- 位与
- 位或
- 位异或
代码见Mexpr.kt
1. 普通算式生成
...
45 -> (7 + 2) * 5
46 -> 7 * 7 - 3
47 -> 7 * 7 - 2
48 -> (5 | 7 * 7) ^ 5
49 -> 7 * 7
50 -> 5 * 5 * 2
51 -> 7 * 7 | 2
52 -> 7 * 7 + 3
53 -> 7 * 7 | 5
54 -> 7 * 7 ^ 7
55 -> 7 * 7 | 7
...
2. 宫廷玉液酒算式生成
- 小锤 = 40
- 大锤 = 80
- 宫廷玉液酒 = 180
...
45 -> 宫廷玉液酒除以((大锤加大锤)除以小锤)
46 -> (大锤加小锤)除以(宫廷玉液酒模小锤)加小锤
47 -> 小锤加(宫廷玉液酒减小锤)除以(宫廷玉液酒模小锤)
48 -> 小锤加(大锤加大锤)除以(宫廷玉液酒模小锤)
49 -> 小锤加宫廷玉液酒除以(宫廷玉液酒模大锤)
50 -> (宫廷玉液酒减大锤)除以(大锤除以小锤)
51 -> (宫廷玉液酒减宫廷玉液酒除以(宫廷玉液酒模小锤))模(大锤加小锤)
52 -> 小锤加宫廷玉液酒模(小锤加大锤除以小锤)
53 -> 宫廷玉液酒加(小锤减宫廷玉液酒)除以(宫廷玉液酒模大锤)减(大锤加小锤)
54 -> 宫廷玉液酒模((大锤加小锤)除以小锤加大锤)加小锤
55 -> (宫廷玉液酒减宫廷玉液酒除以((大锤加大锤)除以小锤))模大锤
...
3. Emoji手语算式生成
- 👆 = 1
- ✌ = 2
- 🖐 = 5
- 🤙 = 6
- 🤞 = 10
- 👉👈 => ()
...
45 -> 👉🤞➖👆👈✖🖐
46 -> 🤞➕🤙✖🤙
47 -> 🤞✖🖐➖👉🖐➖✌👈
48 -> 🤞✖🖐➖✌
49 -> 🖐✖🤞➖👆
50 -> 🤞✖🖐
51 -> 🖐✖🤞➕👆
52 -> 🤞✖🖐➕✌
53 -> 👉🤙➕🤞✖🤞👈➗✌
54 -> 🤞✖🤙➖🤙
55 -> 🤞✖🖐➕🖐
...
你可以在浏览器控制台或Node.js中输入表达式进行测试。为什么会这样:zhuangbility, wtfjs
...
45 -> (~{}+~[]+~{}+~{})*([]+~[]+-~[]-[])-~[]
46 -> (~{}+~{})*([]+(~{}+~{})+(-~{}-~{}-~[])-[])
47 -> ~{}+([]+~{}+-[]+-[]-[])/(~[]+~{})+~[]+~[]
48 -> ([]+~{}+(-~[]-~{})-[])*(~{}+~{}+~[]+~{})
49 -> ([]+~{}+-[]+-[]-[])/(~[]+~[])+~{}
50 -> ([]+~{}+-[]+-[]-[])/(~[]+~{})
51 -> []+(-~[]-~{}-~[]-(~[]+~{}))+-~[]-[]
52 -> []+(-~[]-~{}-~[]-(~[]+~[]))+(-~[]-~{})-[]
53 -> ~{}+([]+~{}+-~{}+-[]-[])/(~[]+~[])+~{}
54 -> ([]+~[]+-~[]+-[]-[])/(~[]+~{})+~[]
55 -> ([]+~[]+-~[]+-[]-[])/(~[]+~{})
...