어떻게 PIC에서 난수를 생성하는?

J

jcding1980

Guest
안녕하세요. 사람은 PIC에 임의의 숫자를 생성하는 방법을 알고? 나는 카운터를 증가 타이머를 사용하여 생각이고 카운터 값에서, 나는 카운터의 값을 최대 출격하는 몇 가지 작업을 할. 그것은 숫자가 무작위로 발생합니까? 아니면 누군가가 그것을 더 나은 방법이나 아이디어가 있으세요? 감사합니다.
 
당신은 (항상 => 뭔가 CRC 같이 시작 값을 변경) RND 번호를 생성하는 몇 가지 polinom를 사용할 수 있습니다. Mr.Cube
 
당신이 필요합니까 진정한 난수 또는 의사 랜덤 ? 두번째 경우에 보이는처럼 - 임의의 숫자 긴 시퀀스를 생성하는 LFSR을 사용할 수 있습니다. 좋은 생각 난수의 범위를 필요 이상 LFSR를 얻을 것입니다. 예를 들어, 32 비트 LFSR을 32 비트에 대한 새로운 번호를들을 때마다 이동하고 무작위로 낮은 16 비트를 얻을. 첫 번째 경우에 대한 귀하의 UC에 연결되어 있어야 외부 하드웨어가 필요합니다. H ** P : : / / wezm.net / 그림 / proj_rand.html 대한 자세한 내용은이 나이를 확인
 
나는 로또 번호 생성기를 설계했습니다. 나는 자유롭게 실행하는 TIMER1을 설정하고 나는 버튼을 누르면 때 레지스터의 값을 읽어 (0-65535에서) 그리고 내가 원하는 범위의 마지막 번호를 얻기 위해 요소에 의해 이것을 분할하고, 디스플레이에 표시됩니다. 카운터가 중지 안 이후 계수가 매우 빠른 경우에도 때문에, 버튼을 못살게 굴지 사용자가 모르거나 계산을 제어할 필요가 없습니다.
 
안녕하세요. 사실 pseudorandom 번호를 생성하면 내 코드에 충분합니다. 그러나 문제는 생성된 번호가 충분히 무작위로 간주 여부를 테스트하는 방법입니까? [크기 = 2] [COLOR = # 999999] 3 분 후에 추가 : [/ 색상] [/ 크기] 안녕하세요 rkodaira. 당신은 임의의 숫자를 생성하는 데 사용되는 방법은 제가 현재 짓을 매우 비슷합니다. 하지만 충분 정말 무작위인가요? 지금까지 내 코드에서 나는 꽤 무작위 생각합니다. 그러나 나는 오직 생성된 숫자 몇 수만에 대한 샘플. 의견 주시기 바랍니다. 감사합니다.
 
[인용 = jcding1980] 사실 pseudorandom 번호가 내 코드에 충분합니다 창출. 그러나 문제는 생성된 번호가 충분히 무작위로 간주 여부를 테스트하는 방법입니까? [/ 인용] 임의성 테스트 중 하나 아주 좋은 세트가 있습니다. 그것은이라고합니다 골수 . 당신은 자유롭게 여기에 다른 플랫폼을 위해 다운로드하실 수 있습니다 http://stat.fsu.edu/pub/diehard/
 
[인용 = IanP] 외부 "백색 잡음"발전기를 사용하여 난수를 생성 Interestig 방식이 여기에 제공됩니다 : H ** P : / / willware.net : 8080/hw-rng.html [/ 인용] IanP가 말했듯이, 백색 소음 임의의 값이있는 유일한 신뢰할 수있는 소스입니다. 나머지는 전부 정말 무작위로하지 않습니다.
 
[인용 = traxonja]와 마찬가지로 IanP는 백색 잡음은 임의의 값이있는 유일한 신뢰할 수있는 소스입니다했다. 다른 모든 것들이 정말 무작위로하지 않습니다 [/ 견적]이 같다. 안녕, 얘들아! 2 +2 = 4! 백색 잡음은 자연에 의해 무작위입니다. 또한, 모든 진정한 무작위 소스는 백색 잡음 생성! TRUE 백색 잡음이 소스를 어디에 주요 문제가 있습니다. 그리고 백색 잡음 정말 "화이트"(진정한 무작위)입니다 평가하는 방법. 어쨌든, 괜찮습니다에 대한 jcding1980 의 프로젝트입니다. 좋은 임의성와 의사 랜덤 생성기 것 같은데 이러한 목적을 위해 나는 몇 가지 LFSRs 가입을 제안 스톱 및 이동 계획하거나 Gollman 구성표를 사용할 수 있습니다. 그들은 스트림 암호에 사용되는, 그들의 임의성이 꽤 좋은가되도록.
 
jcding1980 물어 :> 안녕하세요 rkodaira. >는 난수를 생성하는 데 사용되는 방법은 제가> 현재 무슨 짓을했는지 매우 비슷합니다. 하지만 충분 정말 무작위인가요? > 지금까지 내 코드에서 나는 꽤 무작위 생각합니다. 하지만 난 단지 생성> 번호 몇 수만에 대한 샘플. 의견 주시기 바랍니다. 안녕 JC! 당신이 세대가 사용자에 의해 "제어"이라고 생각한다면, 그것은 순수 무작위되지 않습니다. 계산이 너무 빨리이기 때문에하지만, 어떤 사람이 빈 그렇게 할 OU는 메커니즘이나 타이밍을 인식 원하는 번호를 얻으려면 버튼을 누르시 수 없다 생각합니다. 그 외에, 당신은 숫자로 카운트를 분리하면 어떤 숫자가 발생하는 다른 가능성이있을 수 있습니다 인식하지만, 차이가 최소 수준에 있어야합니다. 간단하고 프로그램에 추가 하드웨어가없고 매우 복잡한 알고리즘이 필요하지 않기 때문에이 방법을 사용합니다. 내 생성기를 테스트하고 그것은 0에서 99 (반복가 발생하면, 또, 이미 생성된 그 숫자를 표시하기 위해 EEPROM에 플래그를 넣어 시작)의 모든 숫자를 생성하기 위해 수 있습니다.
 
당신은 물류지도를 고려해야 어떻게 생각하세요? cahotic 기능은입니까? 아마도 당신은 두 개의 다른 (pseudorandom)지도 사이의 차이를 고려 수 있습니다. 그것은 정말 무작위 번호를 제공하면 내가 모르는 생각입니다.
 

Welcome to EDABoard.com

Sponsor

Back
Top