1

それぞれが 2 つの可能な値のいずれかになる要素を持つ 2 つのリストがあり、2 つのリストが 1 つの値を除いて同一である場合、その値のインデックスを見つけるにはどの方法を使用すればよいですか? 背景情報として、これを Python でコーディングします。

方法 A:

1. represent both lists as a binary literals  
2. use XOR on the two binary literals to give a value "v" that is a power of 2  
3. finally, use math.log(v, 2) to get the index

または方法 B:

just iterate through both lists until a different element is found and 
get the index

またはPythonを使用した別の方法ですか?

4

3 に答える 3

2

リストを別の表現に変換するには、それらを繰り返し処理する必要があります。違い自体を見つけるために繰り返し処理することもできます。

于 2013-07-06T06:08:42.797 に答える
1

「最良の」方法についてはわかりませんが、python を使用して 2 つのセットの差を取得し、インデックスを返すことができます。

xs= [1, 2, 3, 4, 5]
ys = [1, 2, 3, 4, 6] # i.e. xs(5) and ys(6) are different


xs.index( list(set(xs) - set(ys))[0] )
ys.index( list(set(ys) - set(xs))[0] )
于 2013-07-06T06:15:32.750 に答える
0

私は最初の方法が良いと思います。さらに変更できます。

xor2 つのリストを作成し、結果を変数 say に格納しますk。k の集合ビットを見つけます。これxorで、このビットが に設定されたすべての要素が1. 1つの番号を取得します。xorこの番号を使用kして他の番号を取得します。

リスト内の 2 つの数値を見つけて、それぞれが属するリストと数値のインデックスを確認します。

于 2013-07-06T06:11:53.033 に答える