これが私の問題です: 「1、2、3、4 の 4 桁をあげます。これらの 4 桁すべてを使用して、1、2、3 などの数式を作成してください。勝者は、は 1 から上の最も長い範囲の数値を生成します. 数学記号 + - * / を使用できます. さらに括弧と平方根を使用できます. 数字を並べて配置して 2 桁または 3 桁の数値を形成できることに注意してください.例は次のとおりです。
1 = ( 3/1 ) - ( 4/ 2 )
2 = ( 2 * 3 ) – ( 4/1)
3 = 21 / ( 3 + 4 )
4 = "
したがって、次のアルゴリズムが必要です。
`Input: an integer`
`Output: an expression formed by digits 1,2,3,4`
今のところ、ブルート フォース アルゴリズムしか考えられません。
First try the expression which formed by only one-digit number. In this expression, try all 4 operators +,-,*,/ in every possible position. Then try to put more bracket.
Then try try the expression which formed by two-digit number and two one digit number...
しかし、すべてのケースを考えることができないため、このアルゴリズムを実装するのは困難です。
誰かがより良いアイデアを持っていますか?