Jak utworzyć funkcję, która przy każdym wywołaniu generuje losową liczbę całkowitą? Ta liczba musi być jak najbardziej losowa (zgodnie z uniform distribution). Dopuszczalne jest użycie tylko jednej zmiennej statycznej i co najwyżej 3 podstawowe etapy, przy czym każdy etap obejmuje tylko jeden podstawowych operacji arytmetycznych arity 1 lub 2.Specjalny prosty generator liczb losowych
Przykład:
int myrandom(void){
static int x;
x = some_step1;
x = some_step2;
x = some_step3;
return x;
}
Podstawowe operacje arytmetyczne + , -,% i, nie, xor lub, lewe przesunięcie, prawe przesunięcie, mnożenie i dzielenie. Oczywiście żadna z rand(), random() lub podobnych rzeczy nie jest dozwolona.
No 'time()' lub wyzwalania funkcji? – FrustratedWithFormsDesigner
nie, nie ma żadnej funkcji zewnętrznej – psihodelia
To jest bezwartościowe pytanie-wywiad. Prosi o coś, co znasz (lub może wiesz, lub po prostu przeczytałeś w czasopiśmie), a nie o czymś, co możesz (lub możesz odliczyć lub wyjaśnić). – Patrick