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

Bagaimanakah Produk Cartesian Boleh Menjana Pilihatur dengan Ulangan?

Barbara Streisand
Lepaskan: 2024-12-21 21:52:38
asal
433 orang telah melayarinya

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)]
Salin selepas log masuk

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)]
Salin selepas log masuk

Baling Dadu Rawak

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

import random
random_roll = random.choice(dice_combinations)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan