Как получить случайные числа с неправильным генератором

Вопрос: Предположим, у вас есть генератор случайных чисел 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();
    }
}

Это правильно?

6
задан Foo Bah 8 October 2011 в 05:07
поделиться