난수의 미스터리
2179 단어 pythonprogrammingbeginners
난수는 실제로 무엇입니까?
따라서 난수가 무엇인지 이해하려면 먼저 '임의'가 실제로 무엇을 의미하는지 이해해야 합니다. 다트의 각 착지 위치에 대해 특정 값이 있는 보드에 다트를 던지고 싶다고 가정해 보겠습니다. 여기서 결과를 예측할 수 없습니다. 10인지 540인지 아무도 모릅니다(당신이 다트를 던지는 Dennis Ritchie가 아닌 한!). 이제 결과를 알지 못하기 때문에 무작위 출력이 됩니다. 따라서 간단히 말해서 난수는 종속성이 없거나 예측할 수 없는 숫자 또는 출력입니다.
컴퓨터는 실제로 어떻게 난수를 생성합니까?
이것은 다음 질문으로 이어집니다. 내 노트북이나 스마트폰은 어떻게 난수를 생성합니까? 에헴… 그렇지 않습니다.
진짜!?
예, 그렇지 않습니다. 이것이 진실입니다. 어떤 결정적 컴퓨팅 시스템도 진정한 난수를 생성할 수 없습니다. 어떤 시스템, OS 또는 프로그래밍 언어를 사용하든 상관 없습니다.
randint()
또는 이와 유사한 기능으로 생성된 어떤 숫자도 진정한 난수를 제공할 수 없습니다. 마우스 움직임이나 키 입력 간격 등과 같이 시스템에 이미 있는 것을 항상 사용합니다. 이것은 참조가 될 것이며 시스템은 미리 정의된 일부 논리를 적용하고 마지막으로 '임의' 숫자를 제공합니다. . 허점이 보이십니까? 기본 번호를 알면 같은 번호를 순식간에 재현할 수 있습니다. 혼란스러운? 파이썬에서 확인해보자.>>> import random
>>> random.seed(20)
>>> random.randint(0, 1000)
927
>>> random.seed(25)
>>> random.randint(0, 1000)
386
>>> random.seed(20)
>>> random.randint(0, 1000)
927
여기에서
seed()
를 사용하여 파이썬이 '임의' 숫자를 생성하기 위해 논리를 적용하기 시작해야 하는 기본 값을 설정합니다. 베이스를 매번 동일하게 만들면 동일한 출력을 얻을 수 있습니다. 모든 논리가 사전 정의되어 있고 우리의 컴퓨터는 인간처럼 생각할 수 없지만 매번 같은 값을 얻을 것입니다. 이제 AI/ML에 대해 생각할 수 있습니다. 사실 아니다. 세계 최고의 AI조차도 이것을 할 수 없습니다. 앞서 말했듯이 결정론적 시스템은 우리에게 진정한 난수를 줄 수 없습니다. 진정한 무작위성은 프로그래밍에 의해 완전히 생성될 수 없습니다.좋아, 근데 내가 이걸 왜 쓰는 거지?
당신은 그렇게 생각하고있을 수 있습니다? 이 사람은 왜 이것을 작성하여 시간을 낭비하고 있습니까? 글쎄, 당신은 눈치 채지 못할 수도 있지만 난수는 도처에 있습니다. 여기에서 이 기사를 읽고 있는 경우에도 실제로 난수의 도움을 받고 있습니다. 난수는 암호화의 기초입니다. 가장 널리 사용되는 비대칭 암호화 알고리즘 중 하나인 RSA 알고리즘은 다른 많은 알고리즘과 마찬가지로 난수를 사용하여 공개 및 개인 키를 생성합니다. 이 난수 생성은 알고리즘이 강도를 유지하고 개인 데이터를 안전한 금고 뒤에 숨기는 데 중요합니다. 위에서 설명했듯이 해커가 난수를 알거나 추측하면 나머지 부분을 해독하기가 정말 쉽습니다.
그렇다면 컴퓨터가 진정으로 난수를 전달하도록 만들 수 있습니까?
현재로서는 귀하 또는 제 PC에서는 불가능하지만 다른 옵션을 찾을 수 있습니다. 양자 컴퓨터의 도움으로 우리는 진정한 난수를 생성할 수 있을 것입니다. 이것은 실제로 Quantum 컴퓨터의 기본 기능입니다. 그래서 그날 떠나겠다고 합니다. 나는 이것과 Quantum 컴퓨터가 실제로 어떻게 작동하는지에 대한 심층적인 세션을 위해 돌아올 수 있지만, 결국 인간의 행동이 무작위적인 것이라는 것을 누가 압니까? 오른쪽?!
Reference
이 문제에 관하여(난수의 미스터리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sandipandutta21/the-mystery-of-random-numbers-3oon텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)