public static void Test3() { // 短い時間に連続でコンストラクタを呼ぶと、同じ値が生成される var logText = "Xorshift128\n"; for (int seed = 0; seed < 3; seed++) { var random = new Xorshift128(); logText += "random.Next() = " + random.Next() + "\n"; } // System.Randomも見てみる logText += "System.Random\n"; for (int seed = 0; seed < 3; seed++) { var random = new System.Random(); logText += "random.Next() = " + random.Next() + "\n"; } Utility.DebugLog(logText); }
public static void Test2() { var logText = "Xorshift128\n"; for (int seed = 1; seed <= 5; seed++) { var random = new Xorshift128(seed); logText += "seed=" + seed + "\t"; var x = random.Next(); logText += "random.Next() = " + x + "\n"; random = new Xorshift128(-seed); logText += "seed=" + -seed + "\t"; var y = random.Next(); logText += "random.Next() = " + y + "\n"; if (x != y) { Utility.DebugLogError("x != y"); } } // System.Randomも見てみる logText += "System.Random\n"; for (int seed = 1; seed <= 5; seed++) { var random = new System.Random(seed); logText += "seed=" + seed + "\t"; var x = random.Next(); logText += "random.Next() = " + x + "\n"; random = new System.Random(-seed); logText += "seed=" + -seed + "\t"; var y = random.Next(); logText += "random.Next() = " + y + "\n"; if (x != y) { Utility.DebugLogError("x != y"); } } Utility.DebugLog(logText); }