public static void Main()
int[] randomNumbers = GenerateRandomNumbers(seed, count, min, max);
Console.WriteLine("Generated Random Numbers:");
foreach (int num in randomNumbers)
Console.Write(num + " ");
public static int[] GenerateRandomNumbers(int seed, int count, int min, int max)
int[] randomNumbers = new int[count];
for (int i = 0; i < count; i++)
int pseudoRandom = GetPseudoRandom(seed, i);
randomNumbers[i] = min + Math.Abs(pseudoRandom) % (max - min + 1);
public static int GetPseudoRandom(int seed, int index)
string input = seed.ToString() + index.ToString();
int hash = MurmurHash3(input);
int pseudoRandom = hash ^ index;
public static int MurmurHash3(string input)
const uint c1 = 0xcc9e2d51;
const uint c2 = 0x1b873593;
const uint n = 0xe6546b64;
uint length = (uint)input.Length;
for (int i = 0; i < input.Length - 3; i += 4)
uint k = (uint)(input[i] | input[i + 1] << 8 | input[i + 2] << 16 | input[i + 3] << 24);
hash = RotateLeft(hash, r2);
uint remainingBytes = (uint)(input.Length & 3);
for (int i = (int)length - 1; i >= input.Length - remainingBytes; i--)
public static uint RotateLeft(uint value, int count)
return (value << count) | (value >> (32 - count));