サブセット和検索を実行するようにTI-83をプログラムしようとしています。したがって、長さNのリストが与えられた場合、与えられた長さLのすべてのリストを見つけたいと思います。その合計は、与えられた値Vになります。
これは、通常のサブセット和問題とは少し異なります。これは、すべての長さではなく、指定された長さのサブセットのみを検索しているためです。また、作業中のプログラムを呼び出すことができないため、再帰が必ずしも最初の選択肢ではありません。
ネストされたループを使用してタスクを簡単に実行できますが、Lの値が5より大きい場合は面倒になります。動的なソリューションを試していますが、どこにも到達していません。
実際、この時点で、私はリスト参照を正しく取得しようとしているだけなので、それが私が見ているものです。例を見てみましょう:
L1={p,q,r,s,t,u}
それで
N=6
長さ3のすべてのサブセットを探して、比較的短くして、L = 3(6c3 =合計20の出力)にします。
理想的には、検索されるリスト参照は次のとおりです。
{1,2,3}
{1,2,4}
{1,2,5}
{1,2,6}
{1,3,4}
{1,3,5}
{1,3,6}
{1,4,5}
{1,4,6}
{1,5,6}
{2,3,4}
{2,3,5}
{2,3,6}
{2,4,5}
{2,4,6}
{2,5,6}
{3,4,5}
{3,4,6}
{3,5,6}
{4,5,6}
明らかに次の方法で達成されます。
FOR A,1,N-2
FOR B,A+1,N-1
FOR C,B+1,N
display {A,B,C}
END
END
END
最初にNのデータを降順で並べ替えて、検索を短縮する条件を検索できるようにします。ループ内のA、B、Cの値をインクリメントすると、FORループを使用してさまざまな場所でデータを少し台無しにします。
また、より優れた動的ソリューションを探しています。私はウェブ上でいくつかの調査を行いましたが、そこにあるものを私の特定の状況に適応させることができないようです。
どんな助けでもいただければ幸いです。小説を書かないように簡潔にしようとしていますが、私が何をしようとしているのかを説明しています。必要に応じて詳細をお知らせします。