トップ «前の日記(2013-04-24(Wed)) 最新 次の日記(2013-04-26(Fri))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2013-04-25(Thu) からりとした青空。温度も少し上がった

直積

数式を見ても、説明を読んでも、何のことだかさっぱり。
Wikipedia で英名(Cartesian product) を確認し、python で 検索してみた。 該当する関数があるらしい。
日本語ドキュメントに感謝。ipython は(起動が少し重いが)便利だ。

In [1]: import itertools
 
In [2]: foo, bar  = [1,2,3] , [4,5,6]
 
In [3]: for x in itertools.product(foo, bar):
   ...:     print x
   ...:
(1, 4)
(1, 5)
(1, 6)
(2, 4)
(2, 5)
(2, 6)
(3, 4)
(3, 5)
(3, 6)
 
In [4]: itertools.product(foo, bar)
 
Out[4]: <itertools.product at 0x1e54640>

repeat をつけてやると、 どえらいことになった。

In [5]: for x in itertools.product(foo, bar,repeat=2):
   ...:     print x
   ...:
(1, 4, 1, 4)
(1, 4, 1, 5)
(1, 4, 1, 6)
(1, 4, 2, 4)
(1, 4, 2, 5)
...
... (途中71行省略
...
(3, 6, 2, 5)
(3, 6, 2, 6)
(3, 6, 3, 4)
(3, 6, 3, 5)
(3, 6, 3, 6)

Python3 でも 同じらしい。( 日本語訳)


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。