CCalculate.Studio

🎲 Công cụ tạo số ngẫu nhiên

Công cụ này lấy các số nguyên ngẫu nhiên từ khoảng bạn chọn, và nếu muốn thì không lặp lại. Nó chạy theo hạt giống chứ không theo đồng hồ, nghĩa là cùng một hạt giống luôn tái lập đúng cùng một kết quả — tính chất quan trọng với việc giảng dạy, với nghiên cứu cần tái lập và với bất cứ ai phải trình bày cách mình làm. Muốn lấy kết quả khác, hãy đổi hạt giống.

Cập nhật lần cuối: 2026-07-07100% miễn phí · Không cần đăng ký
Thêm làm ưu tiên trên Google

Công cụ này hợp và không hợp với việc gì

Các bộ tạo số giả ngẫu nhiên khác nhau rất xa về chỗ dùng được. Cái này nhanh, tái lập được và có tính chất thống kê tốt cho công việc thường ngày, và dứt khoát không phải là nguồn tạo bí mật.

Mục đích dùngCó hợp không?Vì sao
Giảng dạy, mô phỏng, lấy mẫuCóTái lập được kết quả là một lợi thế ở đây
Chọn người trúng, gieo xúc xắc, số xổ sốCó, với hạt giống mớiAi biết hạt giống đều tái lập được kết quả
Mật khẩu, khóa, token, mã phiênKhôngCó thể khôi phục trạng thái từ đầu ra; hãy dùng công cụ tạo mật khẩu
Trò chơi hay cờ bạc có quản lýKhôngNhững nơi đó cần bộ tạo phần cứng được chứng nhận hoặc bộ tạo mật mã
  • Cả hai đầu của khoảng đều được tính, nên khoảng từ 1 đến 100 chứa 100 giá trị khả dĩ.
  • Ở chế độ không hoàn lại, số lần lấy không thể vượt quá số giá trị trong khoảng. Công cụ sẽ từ chối chứ không âm thầm lặp lại.

Công cụ tạo số giả ngẫu nhiên là gì

Công cụ tạo số giả ngẫu nhiên là một thuật toán tất định sinh ra dãy số vượt qua được các kiểm định thống kê về tính ngẫu nhiên. Nó không ngẫu nhiên theo nghĩa vật lý: đó là một hệ thức truy hồi cố định, và từ một giá trị khởi đầu cho trước — hạt giống — nó luôn sinh ra cùng một dãy.

Ở đây dùng bộ tạo xorshift 32 bit do George Marsaglia công bố trên Journal of Statistical Software năm 2003. Nó hoạt động bằng cách liên tục lấy phép hoặc loại trừ giữa một giá trị và các bản sao đã dịch bit của chính nó, với bộ ba mức dịch được chọn sao cho dãy đi qua mọi trạng thái 32 bit khác không trước khi lặp lại.

Việc dùng hạt giống là lựa chọn có chủ ý chứ không phải hạn chế. Mọi công cụ trên trang này đều là hàm thuần túy của dữ liệu nhập vào, và chính điều đó khiến kết quả tái lập và kiểm chứng được. Nó còn cho bạn thứ mà một bộ tạo chạy theo đồng hồ không thể có: ghi kèm hạt giống bên cạnh các con số, và bất kỳ ai cũng tái lập được đúng kết quả của bạn.

Cách dùng công cụ tạo số ngẫu nhiên

  1. Đặt giá trị nhỏ nhất và lớn nhất. Cả hai đầu đều nằm trong khoảng.
  2. Chọn lấy bao nhiêu số.
  3. Quyết định có cho phép lặp lại hay không. Ở chế độ không hoàn lại, không giá trị nào xuất hiện hai lần, nên bạn không thể lấy nhiều số hơn số lượng khoảng chứa.
  4. Đổi hạt giống mỗi khi bạn muốn một kết quả khác. Cùng một hạt giống luôn trả về cùng những con số.

Các con số được tạo ra thế nào

x = x XOR (x << 13); x = x XOR (x >> 17); x = x XOR (x << 5)
u = x / 2^32, tức là 0 <= u < 1
giá trị = min + floor(u x (max - min + 1))
số giá trị trong khoảng = max - min + 1

Hệ thức truy hồi xorshift biến đổi một trạng thái 32 bit ba lần cho mỗi lần lấy, rồi chia cho 2^32 để cho ra một giá trị trong khoảng từ không tới một nhưng không gồm một. Nhân với độ lớn của khoảng rồi lấy phần nguyên dưới sẽ ánh xạ nó thành một số nguyên.

Chế độ không hoàn lại dùng phép xáo Fisher-Yates từng phần trên khoảng đã cho. Mỗi lần lấy đổi chỗ một phần tử còn lại vào đúng vị trí, nhờ đó chọn được một tập con ngẫu nhiên đều chỉ trong một lượt và không thể bị nghẽn như cách 'lấy rồi thử lại' khi nguồn cạn dần.

Những lỗi thường gặp

  • Dùng bộ tạo số giả ngẫu nhiên cho bất cứ thứ gì cần giữ bí mật. Dãy số bị hạt giống quyết định hoàn toàn.
  • Trông đợi những con số mới mà không đổi hạt giống. Tính tái lập chính là mục đích, và hạt giống là nút điều khiển.
  • Cho rằng cận trên bị loại trừ. Ở đây cả hai đầu của khoảng đều được tính.
  • Yêu cầu nhiều giá trị khác nhau hơn số mà khoảng chứa.
  • Coi một chuỗi các giá trị gần giống nhau là trục trặc. Sự tụ cụm là tính chất bình thường của dãy ngẫu nhiên, và việc nó vắng mặt mới đáng ngờ hơn sự có mặt.

Câu hỏi thường gặp

Vì sao cùng một hạt giống luôn cho cùng những con số?

Vì bộ tạo số giả ngẫu nhiên là một hệ thức truy hồi tất định, còn hạt giống là trạng thái khởi đầu của nó. Đây là ưu điểm chứ không phải khuyết điểm: nêu hạt giống ra thì bất kỳ ai cũng tái lập được đúng kết quả của bạn, và đó chính là thứ nghiên cứu cần tái lập và các buổi minh họa trên lớp cần đến. Muốn kết quả khác, hãy đổi hạt giống.

Có đủ ngẫu nhiên để rút thăm trúng thưởng không?

Với một cuộc rút thăm không chính thức thì có, miễn là bạn chọn một hạt giống mà người tham gia không đoán được và công bố nó sau đó để kết quả có thể kiểm chứng. Với trò chơi có quản lý thì không — những nơi ấy đòi hỏi bộ tạo phần cứng được chứng nhận hoặc thuật toán an toàn về mật mã.

Tôi có thể dùng cái này để tạo mật khẩu không?

Không. Trạng thái bên trong của bộ tạo xorshift có thể khôi phục được chỉ từ một đoạn ngắn đầu ra của nó, nên mọi thứ suy ra từ đó đều đoán trước được. Hãy dùng công cụ tạo mật khẩu trên trang này, vốn lấy từ nguồn ngẫu nhiên an toàn về mật mã của hệ điều hành.

Lấy mẫu không hoàn lại nghĩa là gì?

Nghĩa là không giá trị nào xuất hiện quá một lần, như khi bốc bóng xổ số. Vì mỗi lần lấy đều loại một giá trị khỏi nguồn, bạn không thể lấy nhiều số hơn số mà khoảng chứa — lấy sáu giá trị khác nhau từ một khoảng có năm giá trị là điều bất khả.

Các con số có phân bố đều không?

Có, trong phạm vi độ chính xác của bộ tạo bên dưới. Mọi giá trị trong khoảng đều có xác suất như nhau, và chế độ không hoàn lại dùng phép xáo Fisher-Yates từng phần, vốn chọn mọi tập con cùng cỡ với xác suất bằng nhau.

Tài liệu tham khảo

  1. Marsaglia G. Xorshift RNGs. Journal of Statistical Software 2003; 8(14): 1-6. doi:10.18637/jss.v008.i14.
  2. Knuth DE. The Art of Computer Programming, Volume 2: Seminumerical Algorithms, 3rd edition. Addison-Wesley, 1997 — random number generation and statistical testing.
  3. Fisher RA, Yates F. Statistical Tables for Biological, Agricultural and Medical Research. Oliver and Boyd, 1938 — the shuffle used for sampling without replacement.
  4. L'Ecuyer P, Simard R. TestU01: A C library for empirical testing of random number generators. ACM Transactions on Mathematical Software 2007; 33(4): 22.

Thống Kê · Tất cả máy tính

Máy tính liên quan