Вопрос: Предположим, у вас есть генератор случайных чисел randn (), который возвращает равномерно распределенное случайное число от 0 до n-1. Для любого числа m напишите генератор случайных чисел, который возвращает равномерно распределенное случайное число от 0 до m-1.
Мой ответ:
-(int)randm() {
int k=1;
while (k*n < m) {
++k;
}
int x = 0;
for (int i=0; i<k; ++i) {
x += randn();
}
if (x < m) {
return x;
} else {
return randm();
}
}
Это правильно?