3

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 ポイント間の距離を計算したいためです。これらの座標は、一度だけ実行させてくれます。

4

4 に答える 4

9

基本的に、各行の s の数 (0 から開始) をインクリメントし1、行の残りの部分を0s でパディングして、一定の長さを維持する必要があります。次のようなことを試してください:

>>> 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]])
于 2013-04-16T22:28:48.827 に答える
3

救助への内包表記をリストしてください!

>>> matrix = [[1]*i + [0]*(4-1) for i in range(4)]

4 を任意の範囲に置き換えます。3.X より前の Pythonxrangeでは、代わりにrange

于 2013-04-16T22:28:33.637 に答える