[COLOR=blue]using System;
[COLOR=blue]using System.Diagnostics;
[COLOR=blue]namespace TestPythonBenchmark
{
[COLOR=blue]class [COLOR=#2b91af]Program {
// Kein long für den Seed, frisst der ctor nicht
[COLOR=blue]private [COLOR=blue]static [COLOR=#2b91af]Random _random = [COLOR=blue]new [COLOR=#2b91af]Random(241500528);
[COLOR=blue]static [COLOR=blue]void Main([COLOR=blue]string[] args)
{
[COLOR=blue]const [COLOR=blue]int cycles = 2048;
[COLOR=blue]int testsize = ([COLOR=blue]int)[COLOR=#2b91af]Math.Pow(2, 24);
[COLOR=blue]int[] testdata = [COLOR=blue]new [COLOR=blue]int[testsize];
[COLOR=blue]for ([COLOR=blue]int i = 0; i < testsize; i++)
{
testdata[i] = _random.Next(1, 255);
}
[COLOR=blue]int the_sum = 0;
[COLOR=#2b91af]Stopwatch stopwatch = [COLOR=blue]new [COLOR=#2b91af]Stopwatch();
stopwatch.Start();
[COLOR=blue]for ([COLOR=blue]int k = 0; k < cycles; k++)
{
[COLOR=blue]int value = k;
[COLOR=blue]while (value < testsize)
{
[COLOR=blue]if (testdata[value] > 128)
{
value += testdata[value];
}
[COLOR=blue]else {
value--;
}
}
the_sum += (value % cycles);
}
stopwatch.Stop();
// Natürlich dann andere Prüfsumme als du
[COLOR=blue]if (the_sum != 200704)
{
[COLOR=blue]throw [COLOR=blue]new [COLOR=#2b91af]Exception([COLOR=#a31515]"wrong test result");
}
[COLOR=blue]else {
[COLOR=#2b91af]Console.WriteLine([COLOR=#a31515]"Runtime in seconds:" + stopwatch.Elapsed);
}
[COLOR=#2b91af]Console.ReadKey();
}
}
}