Как создать функцию, которая на каждом вызове генерирует случайное целое число? Это число должно быть максимально вероятным (согласно uniform distribution). Это разрешено только использовать одну статическую переменную и не более 3 элементарных шагов, где каждый шаг состоит только из одной основной арифметической операции arity 1 или 2.Генератор простых простых случайных чисел
Пример:
int myrandom(void){
static int x;
x = some_step1;
x = some_step2;
x = some_step3;
return x;
}
Основные арифметические операции + , -,%, и не, xor, или, сдвиг влево, сдвиг вправо, умножение и деление. Конечно, никаких рандов(), random() или подобных материалов не допускается.
Нет 'времени()' или функции аккуратный? – FrustratedWithFormsDesigner
нет, никакой внешней функции – psihodelia
Это бесполезный вопрос для интервью. Он запрашивает то, что вы знаете (или, может быть, знаете, или можете просто читать в журнале), а не то, что вы можете (или можете вычесть или рассуждать). – Patrick