Bạn bè của tôi mời tôi về nhà chơi trò chơi Bí mật ở Santa, nơi chúng tôi phải vẽ rất nhiều & đóng vai trò 'Santa' cho một người bạn trong nhóm.Bí mật ở Santa - Tạo các hoán vị 'hợp lệ'
Vì vậy, chúng tôi viết tất cả tên và chọn tên ngẫu nhiên. Nếu bất kỳ ai trong chúng ta kết thúc có tên riêng của họ được chọn, sau đó chúng tôi cải tổ lại và chọn tên tất cả hơn một lần nữa (lý do là một trong những không thể là Santa của riêng mình).
Có bảy người trong chúng tôi trong khi chơi nên tôi nghĩ về "phân bổ Santa" cuối cùng như một hoán vị (1: 7) trên chính nó, với một số hạn chế.
tôi trân trọng kính mời những ý tưởng khác nhau về cách chúng tôi có thể sử dụng Mathematica đặc biệt hoặc bất kỳ ngôn ngữ lập trình hay thậm chí là một thuật toán để:
- Danh sách/in ra tất cả các ông già Noel-phân bổ 'hợp lệ'
- là khả năng mở rộng như số lượng bạn bè chơi 'bí mật ông già Noel' mọc
tha thứ cho sự thiếu hiểu biết, nhưng điều này không giải quyết được với 7! ? Số lượng khả năng đó là. Không phải là nội dung chính xác của những thứ đó. – Sheriff
@Sheriff Không, nó không. Anh ta yêu cầu các hoán vị không để nguyên tố nào được đặt ra. Đối với ba yếu tố, (123) (132) (321) (213) bị từ chối, (231) và (312) là không sao. – Szabolcs
@ Cảnh sát, vâng, thực sự rất nhiều. n!sẽ là tổng số hoán vị, nhưng, một số trong số đó sẽ là 'không hợp lệ' và cần được xem xét. Quy tắc đơn giản là nếu người 'tôi' chọn 'tôi' thì 'hoán vị' này không hợp lệ. Nếu 1,2,3, .. n là người & P (1), P (2) .. P (n) là các vị trí mà họ chọn, sau đó cho mỗi 1 <= i <= n, tôi không nên bằng P (i). Tôi biết đây là một điều kiện khá đơn giản, nhưng tôi tò mò muốn tìm hiểu 'thành ngữ' khác nhau này có thể được 'lập trình', nói trong Mathematica ... và xem chúng ta có thể tìm thấy một số đơn giản hóa thú vị/mẫu ... – fritz