0과 1 사이의 실수가 주어졌습니다. 이것은 niceness-factor입니다. 이 요인은 일종의 확률입니다. 나는 그것이 0.2이면, 1/5의 확률로 어떤 것이 일어날 것임을 의미합니다. 임의의 프로 시저가 체계에서 정확한 정수를 원합니다.
나는 이것에 대한random
절차를 사용하려고 노력했다.
(if (eq? 'c (tit-for-tat my-history other-history))
'c
(if (= (random (/ 1 niceness-factor)) 0) 'c 'd))
은 "임의"절차가 저를 원하지만이 정확한 정수를주고 : 여기 내 코드 조각이다. 이 문제를 어떻게 해결할 수 있습니까? 랜덤과 비슷한 절차가 있습니까? 사전에
감사합니다 ...이 문제를 해결하는
niceness-factor를 "정수처럼"변환해야 할 필요가 있는지 물어볼 것입니다. 대신 간단히 '(> (임의의) niceness-factor)'를 수행 할 수 있습니다. –
내가 잘 알고있는 Scheme'random'은 0과'limit' 사이의 정수를 반환합니다. 동의하는 바에 따르면, 어떤 것은 0과 1 사이의 실수를 반환 할 수 있습니다.'random'은 어떤 RnRS의 일부분으로 정의되지 않습니다. – GoZoner
OP에 라켓이 붙어 있습니다. 라켓 언어는'(무작위 한계)'를 정의하여 정수 0..limit를 반환합니다. 그리고 0과 1 사이의 배타적 부정합을 반환하는'(random) '. 참조 링크에 대한 내 대답을 참조하십시오. (IMO 질문은 R6RS 또는 R5RS 언어를 사용하지 않는 한 라켓 태그와 스킴 태그를 모두 가져서는 안됩니다. 라켓 언어는 스킴에서 진화되었지만 스킴이 아닙니다.) –