주어진 확률이 1에서 100까지 인 임의의 부울을 생성하는 함수가 필요합니다.
나는 이것을 시도했다 :
int randProb(int chance, int min, int max) {
int random = rand();
if (random < (RAND_MAX) / chance / 10)
return -(random % (max - min + 1) + min);
else
return (random % (max - min + 1) + min);
}
하지만 내가 그것을 부를 때, 확률로 1을 통과
randProb(1, 0, 1)
때로는 1, 때로는 -1, 때로는 0을 반환합니다.
그리고 내가 그것을 부를 때 확률로 100을 넘기면
randProb(100, 0, 1)
때때로 0을 반환하고 때로는 1을 반환합니다. 작동하면 100의 확률로 항상 1을 반환해야합니다.
참고 시간은 다음과 같이 초기화됩니다.
time_t t;
srand((unsigned) time(&t));
따라서 내가 올바르게 이해했다면 함수는 두 개의 부울 0
과 1
. 그래서 나는 당신이 필요한 이유 min
와 max
매개 변수를 보지 못합니다 . 나는 그렇게 할 것입니다. 당신의 문제를 제대로 이해하지 못했다면 말 해주세요.
int randProb (int chance) {
int random = (rand()%100)+1;
if (random<=chance) {
return 1;
}
else {
return 0;
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다