列出4个运算符和4个数字的所有组合,然后测试它们的最终值C#

列出4个运算符和4个数字的所有组合,然后测试它们的最终值C#,c#,c#-4.0,operators,combinations,C#,C# 4.0,Operators,Combinations,我正在尝试制作一个24解算器(游戏24的目标是使用+,-,*,/来获得数字24) 我有理由相信,实现这一点的唯一方法是使用蛮力方法(尝试数字的每个组合,并在它们之间使用运算符) 为了消除括号的需要,我认为数字的位置也应该是随机的 我想用C#做这件事 我该怎么做呢? (基本大纲、计划…)摘自: 算法 1.将24个游戏结果视为一棵二叉树(如果您不知道它是什么,请先查看数据结构书)。 2.有三种类型的二元分支。“D OP D”、“P OP D或D OP P”、“P OP P”。其中,D是数字(大于1的

我正在尝试制作一个24解算器(游戏24的目标是使用+,-,*,/来获得数字24)

我有理由相信,实现这一点的唯一方法是使用蛮力方法(尝试数字的每个组合,并在它们之间使用运算符)

为了消除括号的需要,我认为数字的位置也应该是随机的

我想用C#做这件事

我该怎么做呢? (基本大纲、计划…)

摘自:

算法
1.将24个游戏结果视为一棵二叉树(如果您不知道它是什么,请先查看数据结构书)。
2.有三种类型的二元分支。“D OP D”、“P OP D或D OP P”、“P OP P”。其中,D是数字(大于1的整数),P是指向另一个下游分支的指针,OP是运算符“+,-,/”。特别是,“D OP D”必须位于树的叶位置。
3.生成所有可能的树。并应用一些优化,例如“+,”两侧的元素可切换,而“-,/”不可切换。
4.生成4位数字(4!=24)的所有可能排列,并删除相同的副本。
5.混合树和数字排列,进行计算,得到结果

摘自:

算法
1.将24个游戏结果视为一棵二叉树(如果您不知道它是什么,请先查看数据结构书)。
2.有三种类型的二元分支。“D OP D”、“P OP D或D OP P”、“P OP P”。其中,D是数字(大于1的整数),P是指向另一个下游分支的指针,OP是运算符“+,-,/”。特别是,“D OP D”必须位于树的叶位置。
3.生成所有可能的树。并应用一些优化,例如“+,”两侧的元素可切换,而“-,/”不可切换。
4.生成4位数字(4!=24)的所有可能排列,并删除相同的副本。
5.混合树和数字排列,进行计算,得到结果


“,”和“,”是否自相矛盾?;-)@dtb-hmm,afaict 90%的代码是使用google和CodePlex编写的。该算法与语言无关,二叉树是一种数据结构;我正在努力学习c。我不是在寻找最有效的,我是在寻找我能用c做些什么#让我们知道我得到了StuckDons“”和“”自相矛盾?;-)@dtb hmm,afaict 90%的代码是使用google和CodePlex编写的。该算法与语言无关,二叉树是一种数据结构;我正在努力学习c。我不是在寻找最高效的,我是在寻找我能用c做什么,让我们知道我会让你陷入困境