n
配列内の数値が与えられた場合(整数であるとは想定できません)、sizeのすべてのサブセットの積を計算したいと思いますn-1
。
これは、すべての数値を乗算してから、数値がゼロでない限り、各数値で順番に除算することで実行できます。ただし、分割を行わずにこれをどのくらい迅速に行うことができますか?
除算を許可しない場合、サイズn-1のすべてのサブセットの積を計算するために必要な算術演算(乗算や加算など)の最小数はどれくらいですか?
明らかに(n-1)*n
乗算で行うことができます。
明確にするために、出力はn
異なる製品であり、許可されるメモリへの読み取りと書き込み以外の操作は乗算、加算、減算のみです。
例
入力は、3つの数字を持っている場合2,3,5
、出力は3つの数字である15 = 3*5
、10 = 2*5
と6 = 2*3
。
勝利基準
回答は、コードが使用する算術演算の数の正確な式を与える必要がありn
ます。人生をシンプルにするために、私はn = 1000
あなたのフォーミュラにプラグインしてそのスコアを判断します。低いほど良い。
コードの正確な式を作成するのが難しすぎる場合は、それを実行してn = 1000
、コード内の算術演算をカウントできます。ただし、正確な式が最適です。
n=1000
簡単に比較できるように、回答にスコアを追加してください。
+
れますか?この場合、配列のインデックス付けもカウントされますか?(これは、追加および間接参照のためのすべての構文糖の後にあるため)。
(n-1)*n
乗算あなたが意味(n-2)*n
右、?