0에서 1 사이의 난수?
0.3452와 같은 0과 1 사이의 난수를 원합니다.나는 사용했다random.randrange(0, 1)
하지만 난 항상 0이야어떻게 해야 하나?
사용할 수 있습니다.random.uniform
import random
random.uniform(0, 1)
random.random()
정확히 그렇게 하다
>>> import random
>>> for i in range(10):
... print(random.random())
...
0.908047338626
0.0199900075962
0.904058545833
0.321508119045
0.657086320195
0.714084413092
0.315924955063
0.696965958019
0.93824013683
0.484207425759
[0, 1]의 범위에서 난수를 사용하고 싶은 경우는, 다음의 순서에 따릅니다.
>>> import os
>>> int.from_bytes(os.urandom(8), byteorder="big") / ((1 << 64) - 1)
0.7409674234050893
0.3452와 같은 0과 1 사이의 난수를 원합니다.
random.random()
원하는 것은 다음과 같습니다.
From python docs: random.random() 범위 내에서 다음 랜덤 부동 소수점 번호를 반환합니다(0.0, 1.0).
그나저나, 왜 네 시도는 실패했어?
시도 내용:random.randrange(0, 1)
From python docs: random.randrange() 범위(start, stop, step)에서 랜덤으로 선택된 요소를 반환합니다.이는 선택(range(start, stop, step))과 동일하지만 실제로는 범위 개체를 구축하지 않습니다.
그래서 네가 여기서 뭘 하고 있는 거지?random.randrange(a,b)
임의의 요소를 선택하는 것입니다.range(a,b)
; 고객님의 경우,range(0,1)
,하지만 그거 알아요!: 의 유일한 요소range(0,1)
, 는0
그래서 선택할 수 있는 유일한 요소는range(0,1)
, 는0
그래서 넌 항상...0
뒤로.
numpy.module을 사용하면 원하는 모양의 난수 배열을 얻을 수 있습니다.
>>> import numpy as np
>>> np.random.random(1)[0]
0.17425892129128229
>>> np.random.random((3,2))
array([[ 0.7978787 , 0.9784473 ],
[ 0.49214277, 0.06749958],
[ 0.12944254, 0.80929816]])
>>> np.random.random((3,1))
array([[ 0.86725993],
[ 0.36869585],
[ 0.2601249 ]])
>>> np.random.random((4,1))
array([[ 0.87161403],
[ 0.41976921],
[ 0.35714702],
[ 0.31166808]])
>>> np.random.random_sample()
0.47108547995356098
random.randrange(0,2) 이것은 동작합니다!
RTM
Python용 문서에서random
모듈:
Functions for integers:
random.randrange(stop)
random.randrange(start, stop[, step])
Return a randomly selected element from range(start, stop, step).
This is equivalent to choice(range(start, stop, step)), but doesn’t
actually build a range object.
그럼 왜 0만 주는지 설명이 되네? range(0,1)
이[0]
그 값만으로 구성된 리스트에서 선택합니다.
또, 다음의 문서로부터도 입수할 수 있습니다.
random.random()
Return the next random floating point number in the range [0.0, 1.0).
그러나 만약 당신이 다음을 포함한다면numpy
태그는 의도적인 것으로, 1개의 콜로 그 범위에서 다수의 랜덤 플로트를 생성할 수 있습니다.np.random
기능.
내 변형은 좀 더 유연하다고 생각한다.
str_Key = ""
str_FullKey = ""
str_CharacterPool = "01234ABCDEFfghij~-)"
for int_I in range(64):
str_Key = random.choice(str_CharacterPool)
str_FullKey = str_FullKey + str_Key
언급URL : https://stackoverflow.com/questions/33359740/random-number-between-0-and-1
'source' 카테고리의 다른 글
Vue JS에서 단일 파일의 구성 요소 변수 내부 스타일에 액세스하는 방법 (0) | 2022.11.23 |
---|---|
MySQL에서 집계 함수 없이 "그룹화 기준" 쿼리를 허용하는 이유는 무엇입니까? (0) | 2022.11.23 |
비정적 메서드에 대한 정적 참조를 만들 수 없습니다. (0) | 2022.11.23 |
PAM, Java를 사용하여 MariaDB에 연결할 수 없습니다. (0) | 2022.11.23 |
Java의 가상 머신 및 CLR (0) | 2022.11.23 |