Bài viết này trình bày cách sử dụng hàm
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
2 để khởi tạo trình tạo số giả ngẫu nhiên trong Python để lấy dữ liệu ngẫu nhiên xác định mà bạn muốnBằng cách đặt giá trị hạt giống tùy chỉnh, chúng tôi có thể tạo lại dữ liệu do trình tạo số giả ngẫu nhiên cung cấp. Chọn các phần tử giống nhau từ danh sách một cách ngẫu nhiên mỗi lần sử dụng
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
2Cũng thấy
- Bài tập tạo dữ liệu ngẫu nhiên trong Python
- Python tạo dữ liệu ngẫu nhiên Quiz
Mục lục
- Một hạt giống trong một trình tạo ngẫu nhiên là gì?
- Tại sao và khi nào nên sử dụng hàm seed[]
- Cách sử dụng ngẫu nhiên. hạt giống [] chức năng
- Cú pháp ngẫu nhiên. hạt giống[]
- hạt ngẫu nhiên [] để tạo cùng một số ngẫu nhiên mỗi lần
- Đặt thời gian hệ thống làm giá trị gốc thay vì nguồn ngẫu nhiên dành riêng cho hệ điều hành
- Nhận giá trị hạt giống được sử dụng bởi trình tạo ngẫu nhiên
- Hạt giống ngẫu nhiên Python với randrange
- Sử dụng phương pháp hạt giống và lựa chọn ngẫu nhiên cùng nhau
- Sử dụng hạt ngẫu nhiên và hàm mẫu cùng nhau
- Sử dụng chức năng hạt ngẫu nhiên và xáo trộn cùng nhau
- Bước tiếp theo
Một hạt giống trong một trình tạo ngẫu nhiên là gì?
Giá trị hạt giống là giá trị cơ bản được sử dụng bởi trình tạo giả ngẫu nhiên để tạo số ngẫu nhiên. Số ngẫu nhiên hoặc dữ liệu được tạo bởi mô-đun ngẫu nhiên của Python không thực sự ngẫu nhiên; . e. , xác định.
Mô-đun ngẫu nhiên sử dụng giá trị gốc làm cơ sở để tạo số ngẫu nhiên.
Sử dụng hàm
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
2 với các hàm mô-đun ngẫu nhiên khác để tái tạo lặp đi lặp lại đầu ra của chúngTại sao và khi nào nên sử dụng hàm seed[]
Giá trị hạt giống rất quan trọng trong bảo mật máy tính để tạo giả ngẫu nhiên khóa mã hóa bí mật an toàn. Vì vậy, bằng cách sử dụng giá trị hạt giống tùy chỉnh, bạn có thể khởi tạo trình tạo số giả ngẫu nhiên mạnh mẽ và đáng tin cậy theo cách bạn muốn
Ngoài ra,
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
2 rất hữu ích để tái tạo dữ liệu được cung cấp bởi trình tạo số giả ngẫu nhiên. Bằng cách sử dụng lại giá trị gốc, chúng tôi có thể tạo lại cùng một dữ liệu nhiều lần khi nhiều luồng không chạyKhi chúng tôi cung cấp một hạt giống cụ thể cho trình tạo ngẫu nhiên, bạn sẽ nhận được các số giống nhau mỗi khi thực hiện chương trình. Điều đó rất hữu ích khi bạn cần một nguồn số ngẫu nhiên có thể dự đoán được
Cách sử dụng ngẫu nhiên. hạt giống [] chức năng
Hãy hiểu hoạt động của hàm
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
6Cú pháp của import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
2
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
random.seed[a=None, version=2]
Nó khởi tạo trình tạo số giả ngẫu nhiên với giá trị hạt giống
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
8Thông số. –
Nó chấp nhận hai tham số. Cả hai đều là tùy chọn
8. Đó là giá trị hạt giống. Nếu a là Không, thì theo mặc định, thời gian hệ thống hiện tại được sử dụng.import random print['Random number with seed 30'] for i in range[3]: # Random number with seed 30 random.seed[30] print[random.randint[25, 50]]
Nếu hệ điều hành cung cấp các nguồn ngẫu nhiên, chúng sẽ được sử dụng thay cho thời gian hệ thống. Ví dụ: Trên cửa sổ,Random number with seed 30 42 42 42
0 sử dụng nội bộRandom number with seed 30 42 42 42
1 để tạo dữ liệu ngẫu nhiên.
Nếu bạn chuyển một giá trị gốc ở dạng số nguyên, thì giá trị đó sẽ được sử dụng nguyên trạng.Random number with seed 30 42 42 42
2. Nếu phiên bản được đặt thành 2 theo mặc định, đối tượngRandom number with seed 30 42 42 42
3,Random number with seed 30 42 42 42
4 hoặcRandom number with seed 30 42 42 42
5 sẽ được chuyển đổi thànhRandom number with seed 30 42 42 42
6 và tất cả các bit của nó được sử dụng
Khi chúng tôi nói nguồn ngẫu nhiên dành riêng cho hệ điều hành, điều đó có nghĩa là. –
- Trên Linux, có thể sử dụng hàm
Random number with seed 30 42 42 42
7 để lấy các byte ngẫu nhiên ở chế độ không chặn - Trên hệ thống giống Unix, các byte ngẫu nhiên được đọc từ thiết bị
Random number with seed 30 42 42 42
8 - Trên Windows, nó sẽ sử dụng
Random number with seed 30 42 42 42
1
Điểm quan trọng
- Nếu bạn không khởi tạo trình tạo số giả ngẫu nhiên, thì trình tạo ngẫu nhiên sẽ sử dụng các nguồn ngẫu nhiên của hệ điều hành để đặt giá trị gốc. Đó là lý do tại sao bất cứ khi nào chúng tôi thực hiện
90, chúng tôi nhận được một số khácimport random print['Random number with seed 30'] for i in range[3]: # Random number with seed 30 random.seed[30] print[random.randint[25, 50]]
- Khi Python không lấy được nguồn ngẫu nhiên dành riêng cho hệ điều hành thì thời gian hệ thống hiện tại theo mặc định được sử dụng làm giá trị gốc
hạt ngẫu nhiên [] để tạo cùng một số ngẫu nhiên mỗi lần
Nếu bạn muốn tạo cùng một số mỗi lần, bạn cần chuyển cùng một giá trị gốc trước khi gọi bất kỳ hàm mô-đun ngẫu nhiên nào khác. Hãy xem cách đặt hạt giống trong trình tạo số giả ngẫu nhiên Python
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
đầu ra
Random number with seed 30 42 42 42
Như chúng ta có thể thấy trong kết quả, chúng ta đã nhận được cùng một số ba lần vì chúng ta đã gieo chúng với cùng một giá trị trước khi gọi một số
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
91Giả sử bạn gọi ngẫu nhiên. randint[] hai lần trước khi gọi một số
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
6, bạn sẽ nhận được một số khác. Nếu Nếu bạn muốn dữ liệu khác, hãy chuyển giá trị gốc khác trước khi gọi bất kỳ hàm mô-đun ngẫu nhiên nào khácThí dụ
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
9đầu ra
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
5Chúng tôi có một số khác ở vị trí thứ hai trong đầu ra vì chúng tôi đã thực hiện randint[] hai lần mà không đặt giá trị hạt giống
Ghi chú. Bạn cũng có thể sử dụng các hàm getstate[] và setstate[], giúp chúng tôi nắm bắt trạng thái bên trong hiện tại của trình tạo ngẫu nhiên.
Chụp và lưu trữ trạng thái hiện tại bằng cách sử dụng
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
93. Tiếp theo, bất cứ khi nào bạn muốn kết quả tương tự, hãy thay đổi trạng thái hiện tại của số ngẫu nhiên bằng cách sử dụng import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
94Bằng cách thay đổi trạng thái hiện tại thành trạng thái trước đó, chúng tôi có thể nhận lại cùng một dữ liệu ngẫu nhiên
Đặt thời gian hệ thống làm giá trị gốc thay vì nguồn ngẫu nhiên dành riêng cho hệ điều hành
Vì bất kỳ lý do gì, nếu bạn muốn đặt một nguồn gốc tùy chỉnh khác với nguồn ngẫu nhiên dành riêng cho hệ điều hành, một phương pháp phổ biến là sử dụng thời gian hệ thống tính bằng mili giây làm giá trị gốc
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
8Nhận giá trị hạt giống được sử dụng bởi trình tạo ngẫu nhiên
Đôi khi, rất hữu ích khi có thể tái tạo dữ liệu được cung cấp bởi trình tạo số giả ngẫu nhiên. Như bạn đã biết, việc tạo dữ liệu ngẫu nhiên phụ thuộc vào giá trị gốc. Bằng cách sử dụng lại giá trị gốc, chúng tôi có thể tạo lại cùng một dữ liệu nhiều lần khi nhiều luồng không chạy
Ví dụ: Bạn muốn tái tạo kết quả bạn nhận được trong một lần chạy cụ thể. Trong những trường hợp như vậy, bạn muốn biết hạt giống được sử dụng để tái tạo kết quả đó. Giá trị hạt giống hiện tại là điều cần thiết khi bạn muốn kết quả có thể lặp lại
Sử dụng giá trị hạt giống tùy chỉnh, bạn phải nhớ rằng Trình tạo ngẫu nhiên của Python không lưu trữ hạt giống trong bộ nhớ. tôi. e. , Nó không cung cấp bất kỳ phương pháp nào để lấy giá trị hạt giống hiện tại. Tùy thuộc vào bạn để lưu hạt giống nếu bạn muốn sử dụng lại nó. Không thể lấy lại hạt giống tự động từ máy phát điện. Nhưng bạn có thể thử thay thế này
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
9Cách trên dựa trên thời gian nên mỗi lần bạn thực hiện nó sẽ cho ra một seed khác nhau và nếu bạn thích kết quả đó, bạn có thể sử dụng seed đó để nhận lại kết quả tương tự
Bây giờ, tôi sẽ sử dụng cùng một hạt giống [7616533358804326209] để nhận lại kết quả tương tự
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
0Ghi chú. Sử dụng phương pháp trên, bạn có thể tạo lại kết quả của bất kỳ chức năng mô-đun ngẫu nhiên nào
Hạt giống ngẫu nhiên Python với randrange
Hãy xem cách sử dụng hàm
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
6 để lấy cùng một số ngẫu nhiên trong một phạm vi nhất địnhimport random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
2Sử dụng phương pháp hạt giống và lựa chọn ngẫu nhiên cùng nhau
Hàm lựa chọn ngẫu nhiên[] được sử dụng để chọn một phần tử ngẫu nhiên từ danh sách và đặt. Bằng cách đặt giá trị hạt giống tùy chỉnh, bạn có thể chọn cùng một lựa chọn mỗi lần
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
3Sử dụng hạt ngẫu nhiên và hàm mẫu cùng nhau
Sử dụng hàm sample[] ngẫu nhiên, chúng ta có thể chọn các mẫu ngẫu nhiên từ danh sách và các loại chuỗi khác. Hãy xem cách lấy các mẫu ngẫu nhiên giống nhau ra khỏi danh sách mỗi lần sử dụng hàm
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
6 và import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
97import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
0Sử dụng chức năng hạt ngẫu nhiên và xáo trộn cùng nhau
Chúng tôi cũng có thể sử dụng
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
6 và ngẫu nhiên. shuffle[] các chức năng cùng nhau. Mục đích chính của việc sử dụng hàm import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
6 và import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
50 cùng nhau là tạo ra cùng một kết quả mỗi lần sau mỗi lần xáo trộn. Nếu chúng ta đặt cùng một giá trị hạt giống mỗi lần trước khi gọi hàm import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
50, chúng ta sẽ nhận được cùng một chuỗi mục. Tôi. e. , việc xáo trộn sẽ tạo ra cùng một kết quả mỗi lầnThí dụ. –
import random
print['Random number with seed 30']
for i in range[3]:
# Random number with seed 30
random.seed[30]
print[random.randint[25, 50]]
1Bước tiếp theo
Hãy cho tôi biết ý kiến và phản hồi của bạn trong phần bên dưới
Ngoài ra, hãy thử giải bài tập miễn phí và câu đố sau đây để hiểu rõ hơn về cách làm việc với dữ liệu ngẫu nhiên trong Python