cuốn sách gpt4 ai đã làm

algorithm - 寻找一种算法以(伪)随机顺序吐出一系列数字

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 02:52:01 25 4
mua khóa gpt4 Nike

Giả sử tôi có một dãy số: {n, n+1, n+2, ... n+m}

Không cần lưu trữ trước các số, tôi muốn tạo một hàm f() mà, với chuỗi {1,2,3,...m}, sẽ đưa ra tập hợp ban đầu một cách ngẫu nhiên (hoặc ít nhất là giả thứ tự ngẫu nhiên).

Ví dụ: giả sử chuỗi của tôi là {10, 11, 12, 13, 14, 15, 16, 17}

   f(1) có thể mang lại 14 f(2) có thể mang lại 17 f(3) có thể mang lại 13 f(4) có thể mang lại 10 f(5) có thể mang lại 16 f(6) có thể mang lại 15 f(7) có thể mang lại 11 f (8) có thể mang lại 12

Trước đây, một đồng nghiệp đã chỉ cho tôi một thuật toán toán học có thể làm được điều này, nhưng tôi gần như quên mất nó tồn tại. Tôi nhớ bạn phải có trước chuỗi này và tạo ra một số hằng số từ chuỗi được sử dụng trong hàm. Đối với những người thắc mắc, tôi rất tiếc đã mất liên lạc với người đồng nghiệp đó.

cái nàycâu hỏiCâu trả lời có vẻ gần giống với điều tôi muốn, nhưng tôi không chắc liệu câu trả lời có cho phép tôi giới hạn đầu ra ở một trình tự cụ thể trước thời hạn hay không.


biên tập:

Chỉ cần làm rõ, tôi không muốn lưu trữ chuỗi gốc hoặc chuỗi bị xáo trộn. Tôi muốn tạo hàm f() từ chuỗi ban đầu.

Thật khó chịu, tôi đã nhìn thấy điều này nhưng tôi không thể nhớ đủ để tìm lại nó qua Google.

Thuật toán Fisher-Yates rất tốt cho hoán vị hoặc xáo trộn, nhưng đó không phải là điều tôi đang tìm kiếm.

câu trả lời hay nhất

Có một chức năng đơn giản tạo ra [0..m-1] hoán vị cho một m .Chọn số bất kỳk , liên quan đến mcho phépf(i)=(k*i) mod m .Điều này sẽ luôn tạo ra một hoán vị (trong 0<=tôi<> không trùng lặp). nếu như k Hiệu quả sẽ tốt hơn m .

Ví dụ: m=20, đặt k=137 (mã Python,%đại diện cho modulo):

 >>> [(137*i) % 20 cho i trong phạm vi(20)]
[0, 17, 14, 11, 8, 5, 2, 19, 16, 13, 10, 7, 4, 1, 18, 15, 12, 9, 6, 3]

Đây là một PRNG rất đơn giản và không có gì đảm bảo về các thuộc tính thống kê của nó.

Về thuật toán - đang tìm kiếm một thuật toán để tạo ra một chuỗi số theo thứ tự ngẫu nhiên (giả), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/732700/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress