Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Produk Cartesian Boleh Menjana Pilihatur dengan Ulangan?

Bagaimanakah Produk Cartesian Boleh Menjana Pilihatur dengan Ulangan?

Barbara Streisand
Barbara Streisandasal
2024-12-21 21:52:38439semak imbas

How Can Cartesian Product Generate Permutations with Repetitions?

Mendapatkan Pilihatur dengan Ulangan Menggunakan Produk Cartesian

Pengenalan

Apabila menjana pilih atur daripada senarai, perpustakaan itertools standard melangkau gabungan di mana unsur berulang. Untuk mendapatkan semua pilih atur yang mungkin, termasuk yang mempunyai pengulangan, produk Cartesian digunakan.

Pilihan Itertools

Fungsi pilih atur() dalam itertools menjana pilihatur tanpa ulangan. Dalam kes gulung dadu, ini tidak termasuk kombinasi seperti (1, 1), di mana nombor yang sama muncul pada kedua-dua dadu.

Produk Cartesian

Produk Cartesian antara dua set mencipta set baharu yang mengandungi semua pasangan tersusun di mana elemen pertama datang dari set pertama dan elemen kedua datang dari set kedua. Contohnya, hasil darab Cartesian {1, 2} dan {3, 4} ialah {(1, 3), (1, 4), (2, 3), (2, 4)}.

Memohon Produk Cartesian pada Gulungan Dadu

Untuk menjana semua kombinasi gulungan dadu yang mungkin dengan ulangan menggunakan Cartesian produk:

import itertools
x = [1, 2, 3, 4, 5, 6]
dice_combinations = [p for p in itertools.product(x, repeat=2)]

Contoh Hasil

Keluaran akan menjadi senarai 36 pasangan tersusun, termasuk kombinasi seperti (1, 1):

[(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)]

Baling Dadu Rawak

Baling dadu rawak boleh diperolehi dengan memilih sepasang daripada senarai produk Cartesian:

import random
random_roll = random.choice(dice_combinations)

Atas ialah kandungan terperinci Bagaimanakah Produk Cartesian Boleh Menjana Pilihatur dengan Ulangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn