私はいくつかの数字を順序付けるためにpythonを使用しています。私は値(4,8,16,32,64など)を入力し、数値の配列を作成し、シーケンスを並べ替えることができる関数を作成したいと考えています。forループ(Python)の動的数を繰り返します。
I値= 4のための配列を決定する方法を詳細図面を追加し、その値8.
= 4アレイ(X = [0、1、2、3])が分割されるべきです2つ([0,1]と[2,3])で配列し、各配列([0,2,1,3])の最初の数に基づいて結合します。 (X = [0、1、2、3、4、5、6、7])は、2つ([0、1、2、3に分割されるべき値= 8アレイについて
]および[4,5,6,7])。両方のアレイを[0,1]、[2,3]、[4,5,6,7]に[4,5]と[6、 7])。次に、各配列の最初の番号と2番目の配列の配列([0、4,2,6,1,5,3,7])のシーケンスに基づいて配列を結合する必要があります。
私は(動的ループのネストされた)再帰を処理する方法がわかりません。私は配列を分割することによって作成された各brachをループしようとしています。私はitertoolsと再帰(Function with varying number of For Loops (python))を調べましたが、私はそれを動作させることができませんでした。以下、これまでの私のアプローチを示すコードを追加しました。
ご迷惑をおかけして申し訳ありません。私はまた、シーケンスを決定するために他のアイデアを公開しています。
私はpython 2.7.6とnumpyを使用しています。
コード:
import numpy
value = 4
a = []
x = numpy.arange(value)
y = numpy.array_split(x, 2)
for i in range(2):
for j in y:
a.append(j.tolist()[i])
print(a)
出力:
[0, 2, 1, 3]
コード:
import numpy
value = 8
a = []
x = numpy.arange(value)
y = numpy.array_split(x, 2)
for i in range(2):
for h in range(2):
for j in y:
z = numpy.array_split(j, 2)
a.append(z[h][i])
print(a)
出力:
[0, 4, 2, 6, 1, 5, 3, 7]
値= 16の出力は[0、8、4、12、2、10、6、14、1、9、5、13、3、11、7 15]でなければなりません。
あなたが必要ですnumpyの解決策?これは普通のPythonで行うことができると私は思う。 –
あなたが必要とするのは、数値のバイナリ形式を取ってantialphabeticallyソートすることだ – Ilja