Вы должны заменить последовательность генератора случайных чисел чем-то, что фактически генерирует приемлемые полуслучайные значения, но эта часть должна быть легкой.
Вы должны определить случайное начальное число с -DSEED=...
при компиляции.
Не знаю, как это сделать с __TIME__
и __DATE__
, потому что они являются строками.
#include <stdio.h>
template <int N>
struct Random {
enum { value = 7 * Random<N-1>::value + 17 };
};
template <>
struct Random<1> {
enum { value = SEED};
};
template <int N, int BEG, int END>
struct RandomIn {
enum { value = BEG + Random<N>::value % (END-BEG) };
};
int main() {
printf("%d %d", RandomIn<2, 5, 10>::value, RandomIn<3, 5, 10>::value);
return 0;
}