Тест на линейность
Использование хеш-функции Mathematica и целых чисел произвольной длины.
Проверяется до n = 2 ^ 20 , генерируя случайные числа до (2 ^ 20) ^ 100 = (приблизительно 10 ^ 602)
На всякий случай ... программа:
k = {};
For[t = 1, t < 21, t++,
i = 2^t;
Clear[a, b];
Table[a[RandomInteger[i^100]] = 1, {i}];
b = Table[RandomInteger[i^100], {i}];
Contains = False;
AppendTo[k,
{i, First@Timing@For[j = 2, j <= i, j++,
Contains = Contains || (NumericQ[a[b[[j]]]]);
]}]];
ListLinePlot[k, PlotRange -> All, AxesLabel -> {"n", "Time(secs)"}]