我脑子里到处都是这个想法,以生成和评估随机数学表达式。因此,我决定先尝试一下,然后详细说明一下算法,然后再对其进行编码以对其进行测试。
例:
以下是一些我想随机生成的示例表达式:
4 + 2 [easy]
3 * 6 - 7 + 2 [medium]
6 * 2 + (5 - 3) * 3 - 8 [hard]
(3 + 4) + 7 * 2 - 1 - 9 [hard]
5 - 2 + 4 * (8 - (5 + 1)) + 9 [harder]
(8 - 1 + 3) * 6 - ((3 + 7) * 2) [harder]
在容易和中等的人是相当直接的。随机数int
由随机运算符分隔,在这里没有什么疯狂的。但我有一些麻烦开始的东西,可能创造的一个坚硬和困难的例子。我什至不确定单个算法能否给我最后两个算法。
我正在考虑的是:
我不能说我尝试过这些想法,因为我真的不想浪费很多时间去朝着根本没有机会工作的方向发展。但是,我仍然想到了一些解决方案:
- 使用树木
- 使用正则表达式
- 使用疯狂的“ for-type”循环(肯定是最糟糕的)
我在寻找什么:
我想知道,在我考虑的解决方案和您自己的想法之间,您认为最好的方法是什么。
如果您看到一个很好的开始方法,那么我将感谢您在正确的方向上取得了领先,例如算法的开始或其总体结构。
另请注意,我将必须评估这些表达式。可以在生成表达式之后或在其创建过程中完成此操作。如果您在回答时考虑到这一点,那就太好了。
我没有在寻找与语言相关的任何东西,但是为了记录,我正在考虑在Objective-C中实现它,因为这是我最近使用最多的语言。
这些示例不包括:
运算符,因为我只想操作int
s,并且此运算符添加了许多验证。如果您的答案给出了解决此问题的解决方案,那就太好了。
如果我的问题需要澄清,请在评论中提出。谢谢你的帮助。