n = 4 の場合、次のように n 次元の行列を作成する必要があります。
[0,0,0,0]
[1,0,0,0]
[1,1,0,0]
[1,1,1,0]
1の位置が必要なので、つまり
0, 1
0, 2
0, 3
1, 2
1, 3
2, 3
これは、距離を繰り返して時間を無駄にすることなく、x ポイント間の距離を計算したいためです。これらの座標は、一度だけ実行させてくれます。
基本的に、各行の s の数 (0 から開始) をインクリメントし1
、行の残りの部分を0
s でパディングして、一定の長さを維持する必要があります。次のようなことを試してください:
>>> n = 4
>>> [[1]*i + [0]*(n - i) for i in xrange(n)]
[[0, 0, 0, 0], [1, 0, 0, 0], [1, 1, 0, 0], [1, 1, 1, 0]]
NumPy を使用している場合:
>>> import numpy as np
>>> np.tril(np.ones((n, n), dtype=int), -1)
array([[0, 0, 0, 0],
[1, 0, 0, 0],
[1, 1, 0, 0],
[1, 1, 1, 0]])
救助への内包表記をリストしてください!
>>> matrix = [[1]*i + [0]*(4-1) for i in range(4)]
4 を任意の範囲に置き換えます。3.X より前の Pythonxrange
では、代わりにrange