Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 의사 난수 생성


많은 컴퓨터 응용 프로그램은 난수를 생성해야 합니다. 그러나 그들 중 누구도 진정한 난수를 생성하지 않습니다. Python은 다른 프로그래밍 기술과 마찬가지로 의사 난수 생성기를 사용합니다. Python의 무작위 생성은 53비트 정밀도 부동 소수점을 생성하는 Mersenne Twister 알고리즘을 기반으로 합니다. 이 기술은 빠르고 스레드로부터 안전하지만 암호화 목적으로는 적합하지 않습니다.

Python의 표준 라이브러리에는 무작위 처리를 위한 다양한 기능을 정의하는 random 모듈이 포함되어 있습니다.

random.seed() − 이 함수는 난수 생성기를 초기화합니다. 임의의 모듈을 가져오면 시스템 시간의 도움으로 생성기가 초기화됩니다. 생성기를 다시 시드하려면 int, str, byte 또는 bytearray 객체를 사용하십시오.

random.getstate() − 이 함수는 setstate() 함수와 함께 동일한 임의의 데이터를 반복해서 재생하는 데 도움이 됩니다. getstate() 함수는 난수 생성기의 내부 상태를 반환합니다.

random.setstate() − 이 함수는 제너레이터의 내부 상태를 복원합니다.

다음 함수는 임의의 정수 생성을 처리합니다 -

random.randrange() - 이 함수는 주어진 범위 사이에서 임의의 정수를 생성합니다. 세 개의 매개변수를 사용할 수 있습니다.

random.randrange(시작, 중지, 단계)

시작 및 단계 매개변수는 선택 사항입니다. 기본값은 각각 0과 1입니다. 단계는 연속된 숫자 사이의 간격을 결정합니다.

>>> random.randrange(10)5>>> random.randrange(10, 20)17>>> random.randrange(100, 200, 2)188

(참고:위 문장의 출력과 이 기사의 나머지 문장은 무작위로 생성된 것과 동일하지 않을 수 있음을 기억하십시오)

random.randint() − 이 함수는 두 매개변수 사이에 임의의 정수를 생성합니다. 단계 매개변수가 없는 randrange() 함수와 유사합니다. 시작 매개변수는 필수입니다.

>>> random.randint(1,10)6>>> random.randint(100, 200)134

다음 함수는 부동 소수점 난수를 처리합니다.

random.random() − 이 함수는 0.0에서 1.0 사이의 부동 소수점 숫자를 무작위로 생성합니다.

>>> random.random()0.668544544081956

random.uniform() − 이 함수는 두 매개변수 사이의 부동 소수점 난수를 반환합니다.

>>> random.uniform(0.5,1.5)1.2760281470664903>>> random.uniform(1,10)7.336985794193224>>> random.uniform(10,5)7.8177947577786727 

다음 함수는 시퀀스 개체에 대해 작동합니다. 문자열, 목록 또는 튜플.

random.choice() - 이 함수는 시퀀스에서 임의의 요소를 선택합니다. 시퀀스가 비어 있으면 IndexError가 발생합니다.

>>> random.choice("튜토리얼 포인트")'o'>>> random.choice(범위(10))2>>> random.choice([15,31,6,29,55, 5] )55>>> random.choice((15,31,6,29,25, 55))15

random.choices() − 이 함수는 목록에서 임의의 방식으로 여러 요소를 선택합니다. 이 함수의 첫 번째 매개변수는 시퀀스이고 두 번째 매개변수는 선택 항목의 수입니다.

>>> name ="TutorialsPoint">>> random.choices(이름, k =2)['T', 'o']

random.shuffle() − 이 함수는 요소를 변경 가능한 순서로 재정렬하고 무작위로 배치합니다.

>>> 숫자 =[10,20,30,40,50]>>> random.shuffle(숫자)>>> 숫자[50, 20, 40, 30, 10]

random.sample() - 이 함수는 불변 시퀀스와 함께 작동합니다. 시퀀스에서 무작위로 선택된 항목의 목록을 그대로 두고 반환합니다.

>>> name ="TutorialsPoint">>> nm =random.sample(name, k =2)>>> name, nm('TutorialsPoint', ['i', 'a'])