[解決済み] 繰り返しのある順列の生成
2022-10-20 16:19:35
質問
itertoolsは知っていますが、繰り返しのない並べ換えしか生成できないようです。
例えば、私は2つのサイコロのすべての可能な出目を生成したいと思います。そこで、繰り返しを含む[1, 2, 3, 4, 5, 6]のサイズ2のすべての並べ換えを必要とします。(1, 1), (1, 2), (2, 1)... など。
可能であれば、私はこれをゼロから実装したくありません。
どのように解決するのですか?
あなたが探しているのは 直交積 .
数学において、デカルト積(または積集合)とは、2つの集合の直積のことである。
あなたの場合、これは
{1, 2, 3, 4, 5, 6}
x
{1, 2, 3, 4, 5, 6}
.
itertools
は、そこであなたを助けることができます。
import itertools
x = [1, 2, 3, 4, 5, 6]
[p for p in itertools.product(x, repeat=2)]
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 1), (2, 2), (2, 3),
(2, 4), (2, 5), (2, 6), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6),
(4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (5, 1), (5, 2), (5, 3),
(5, 4), (5, 5), (5, 6), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6)]
ランダムなサイコロの出目を得るために、( 全く非効率的な方法 ):
import random
random.choice([p for p in itertools.product(x, repeat=2)])
(6, 3)
関連
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] 2次元アレイにおけるピーク検出
-
[解決済み] リストのすべての並べ換えを生成するには?
-
[解決済み] Pythonで子クラスから親クラスのメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] Pythonでコード行間にかかる時間を測定するには?
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] 文字列のリストを内容に基づいてフィルタリングする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] 範囲指定された浮動小数点数のランダムな配列を生成します。
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] virtualenvsはどこに作成するのですか?
-
[解決済み] Pythonの辞書にあるスレッドセーフについて