- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
说我有一些python代码:
nhập khẩu ngẫu nhiên
r=random.random()
câu trả lời hay nhất
遵循da代码。
要查看ngẫu nhiên
模块在系统中的“位置”,您可以在终端中执行以下操作:
>>> import random
>>> random.__file__
'/usr/lib/python2.7/random.pyc'
.pyc
(“已编译”)文件的路径,该文件通常与可以找到可读代码的原始
.py
并排放置。
/usr/lib/python2.7/random.py
中发生了什么:
Random
类的实例,然后(在文件底部)“将该”实例的方法“提升”为模块功能。整洁的把戏。当将
ngẫu nhiên
模块导入任何地方时,将创建该
Random
类的新实例,然后初始化其值并将方法重新分配为模块的功能,从而使其在每次导入时都相当随机(erm ...或每个Python解释器实例)的基础。
_inst = Random()
seed = _inst.seed
random = _inst.random
uniform = _inst.uniform
triangular = _inst.triangular
randint = _inst.randint
Random
类在其
__nóng__
方法中所做的唯一事情是将其作为种子:
class Random(_random.Random):
...
def __init__(self, x=None):
self.seed(x)
...
_inst = Random()
seed = _inst.seed
x
Đúng
Không có
(未指定种子)会发生什么?好吧,让我们检查
self.seed
phương pháp:
def seed(self, a=None):
"""Initialize internal state from hashable object.
None or no argument seeds from current time or from an operating
system specific randomness source if available.
If a is not None or an int or long, hash(a) is used instead.
"""
if a is None:
thử:
a = long(_hexlify(_urandom(16)), 16)
except NotImplementedError:
thời gian nhập khẩu
a = long(time.time() * 256) # use fractional seconds
super(Random, self).seed(a)
self.gauss_next = None
_urandom(16)
到底是什么呢?
random.py
文件的开头:
from os import urandom as _urandom
from binascii import hexlify as _hexlify
ngẫu nhiên
模块使用的种子与执行操作相同:
>>> long(binascii.hexlify(os.urandom(16)), 16)
46313715670266209791161509840588935391L
ngẫu nhiên
函数并不是真正的“随机”……它们只是一个非常奇怪的数字序列。但是给定相同的种子,该顺序将是相同的。您可以自己尝试:
>>> import random
>>> random.seed(1)
>>> random.randint(0,100)
13
>>> random.randint(0,100)
85
>>> random.randint(0,100)
77
1
,您将始终获得整数
13
,
85
,
77
...某种程度上打败了目的(有关伪随机数生成的信息,请参见
cái này)另一方面,在
use cases中,这实际上可能是理想的功能。
/dev/urandom
(这是Python的
os.urandom
实际上在内部使用的),不同之处在于
/dev/random
(如前所述)使用硬件中断来生成随机序列。如果没有中断,
/dev/random
可能会用尽,您可能需要稍等片刻,直到获得下一个随机数。
/dev/urandom
在内部使用
/dev/random
,但可以保证始终为您准备好随机数。
cat /dev/random
(并准备按Ctrl + C,因为它将开始真正非常随机地输出内容)
borrajax@borrajax:/tmp$ cat /dev/random
_+�_�?zta����K�����q�ߤk��/���qSlV��{�Gzk`���#p$�*C�F"�B9��o~,�QH���ɭ�f��̬po�2o�(=��t�0�p|m�e
���-�5�߁ٵ�ED�l�Qt�/��,uD�w&m���ѩ/��;��5Ce�+�M����
~ �4D��XN��?ס�d��$7Ā�kte▒s��ȿ7_���- �d|����cY-�j>�
�b}#�W<>
. 75���c4$3z���/̾�(�(���`���k�fC_^C
ngẫu nhiên
模块潜在的弱点是使用它的时候:
time.time
总是报告同一时间(基本上是一个坏时钟)ngẫu nhiên
模块的实际随机性,则可以直接转到
os.urandom
,也可以使用
pycrypto密码库中的随机数生成器。这些可能更随机。我说更多是因为...
关于Python:random.random()植入哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27284943/
Trong khi phân tích mã, tôi tình cờ tìm thấy đoạn mã sau: msk = np.random.rand(len(df)) < 0.8 Các biến "msk" và "df" không liên quan đến vấn đề của tôi. Sau một số nghiên cứu, tôi nghĩ cách sử dụng này cũng liên quan đến lớp "ngẫu nhiên".
Vì một số lý do chính đáng, tôi phải sử dụng hàm ngẫu nhiên() của BSD để tạo ra số lượng số ngẫu nhiên rất lớn và vì khoảng thời gian của nó rất ngắn (~2^69, nếu tôi nhớ chính xác), chất lượng của những số đó sẽ giảm xuống rất nhanh cho trường hợp sử dụng của tôi. Tôi có thể sử dụng, tôi có thể truy cập
Mọi ngôn ngữ đều có hàm ngẫu nhiên() hoặc chức năng tương tự để tạo số giả ngẫu nhiên. Tôi đang tự hỏi điều gì xảy ra bên dưới để tạo ra những con số này? Tôi không viết bất cứ điều gì đòi hỏi kiến thức này, tôi chỉ cố gắng thỏa mãn sự tò mò của bản thân. Những câu trả lời hay nhất mang tính đột phá của Donald Knuth
Tôi đã phát triển một ứng dụng đơn giản để tạo chuỗi dữ liệu thử nghiệm và tôi đã xây dựng nó để có thể lặp lại bằng cách sử dụng một hạt giống ngẫu nhiên. Tôi nhận thấy những điều sau đây và tự hỏi tại sao: >>> Random.seed(1) >>> [random.randint
Có sự khác biệt nào giữa ngẫu nhiên() * ngẫu nhiên() và ngẫu nhiên() ** 2 không? ngẫu nhiên() trả về giá trị từ 0 đến 1 từ phân phối đồng đều. Khi thử nghiệm hai phiên bản số bình phương ngẫu nhiên, tôi nhận thấy một chút khác biệt
Tôi thấy rằng Python (và hệ sinh thái của nó) chứa đầy những quy ước kỳ lạ và sự không nhất quán, đây là một ví dụ khác: np.random.rand Tạo một mảng có hình dạng và quần thể nhất định
Tôi muốn xem gói tạo số ngẫu nhiên nào nhanh hơn trong mạng thần kinh của tôi. Tôi hiện đang sửa đổi một đoạn mã từ github, trong đó cả gói numpy.random và gói ngẫu nhiên đều được sử dụng để tạo số nguyên ngẫu nhiên, lựa chọn ngẫu nhiên, mẫu ngẫu nhiên, v.v. Lý do tại sao tôi thay đổi mã này
Tôi có một tập lệnh lớn bằng Python. Tôi đã lấy cảm hứng từ mã của người khác, vì vậy cuối cùng tôi đã sử dụng mô-đun numpy.random để thực hiện một số việc (như tạo một dãy số ngẫu nhiên lấy từ phân phối nhị thức) và ở nơi khác tôi đã sử dụng mô-đun ngẫu nhiên
Đây chỉ là "hội chứng API lớn" hay đang tạo ra các số ngẫu nhiên sai lệch hơn trong một số trường hợp? Nếu vậy... tôi nghĩ điều quan trọng là phải kiểm soát sự thiên vị. Câu trả lời hay nhất Họ thực sự giống nhau. Chỉ là một phương pháp tiện lợi. Ngoài ra, hãy kiểm tra javadoc tại đây.
Tôi vừa quan sát thấy rằng khi sử dụng Python3, việc xáo trộn danh sách bằng cách sử dụng Random.shuffle mất khoảng một nửa thời gian chạy so với khi gửi đối số từ khóa ngẫu nhiên của hàm Random.random >random một cách rõ ràng. tôi kiểm tra
Trong mô-đun ngẫu nhiên trong python, sự khác biệt giữa Random.uniform() và Random.random() là gì? Cả hai đều tạo ra các số giả ngẫu nhiên, Random.uniform() tạo ra các số phân bố đồng đều, Random.rando
Có thể tạo biến "số ngẫu nhiên" trong JMeter không? Tôi đã ghi lại hành trình của người dùng Tôi đã nhập hành trình vào JMeter Tôi phải nhập ID gồm 4 chữ số duy nhất trong trường hợp kiểm tra hành trình của người dùng Giá trị mặc định hiện tại trong jmeter là 2323 Có cách nào không
Ví dụ: nếu tôi thực hiện lệnh hai lần: ffmpeg -i input.mp4 -vf geq=r='random(1)*255':g='random(1)*255':b='random(1)* 255' -stri
Mặc dù trình tạo ngẫu nhiên chỉ được tạo một lần nhưng đầu ra luôn có cùng kết quả ngẫu nhiên (đối với cả ba đầu ra thử nghiệm). Đoạn mã kiểm tra từ tập lệnh lớn hơn một chút: let myRandGen = System.Random() let getRa
Tôi đang dự định tạo mã gồm 5 chữ số ngẫu nhiên trong Kotlin bằng cách sử dụng IntRange.random() (tức là (0..9999).random()). Điều quan trọng là kẻ xấu không thể dự đoán được thứ tự các số sẽ được tạo ra. IntRange.
Bạn có thể cho tôi biết cách đặt hạt giống trình tạo số ngẫu nhiên trong KDB thành số "ngẫu nhiên" ít nhiều không? Tôi đang cố gắng làm như sau: \S .zi nhưng không hiểu sao nó không hoạt động. \S dường như yêu cầu một số nguyên rõ ràng, không phải một biến. Cảm ơn bạn rất nhiều!
Tôi cần có cả /dev/random và /dev/urandom trong mô-đun hạt nhân. get_random_bytes cung cấp API để lấy/dev/urandom. Tuy nhiên,/dev/random không có A.
Random.shuffle(lst_shuffle, Random.random) Tôi biết phần sau là tham số tùy chọn. Nhưng chính xác thì nó làm gì. Tôi không hiểu điều này có nghĩa là gì. Đây là từ tài liệu. ngẫu nhiên.random()
Trên Raspberry Pi 3: >>> nhập ngẫu nhiên >>> ngẫu nhiên.seed(0.9849899567458751) >>> ngẫu nhiên.random() 0.47871160253065
Giả sử tôi có một số mã python: import Random r=random.random() Các giá trị của r thường đến từ đâu? Nếu hệ điều hành của tôi không có số ngẫu nhiên thì nó sẽ được gieo vào đâu? Tại sao nó không được khuyến khích để mã hóa? Có gì ở đó
Tôi là một lập trình viên xuất sắc, rất giỏi!