与えられた範囲が ABC と DEF (各文字は数字) であるとします。
Algorithm permutationExists(range_start, range_end, range_index, nos1, nos2)
if (nos1>0 AND range_start[range_index] < 1 < range_end[range_index] and
permutationExists(range_start, range_end, range_index+1, nos1-1, nos2))
return true
elif (nos2>0 AND range_start[range_index] < 2 < range_end[range_index] and
permutationExists(range_start, range_end, range_index+1, nos1, nos2-1))
return true
else
return false
すべての数字が一連の数字であると想定しています。指定された数値は として表され{numberOf1s, numberOf2s}
ます。数字 (最初の 1、次に 2) を範囲内に収めようとしていますが、そうでない場合はプロシージャが false を返します。
PS: 私は本当に間違っているかもしれません。この種のことが機能するかどうかはわかりません。あまり考えていませんでした、本当に..
アップデート
アルゴリズムの表現方法が間違っています。その中で行う必要があるいくつかの変更があります。これは動作するコードです (私のテストケースのほとんどで動作しました): http://ideone.com/1aOa4