using System;
using System.Collections.Generic;
public class Test
{
private static Random rnd = new Random();
public static IEnumerable<int> getRandomNumbers(int count, int lowerbound, int upperbound, int specialNumber = int.MinValue, int specialNumberCount = int.MinValue)
{
var list = new List<int>(count);
HashSet<int> specialNumPositions = new HashSet<int>();
if (specialNumberCount > 0)
{
// generate random positions
for (int i = 0; i < specialNumberCount; i++)
{
while (!specialNumPositions.Add(rnd.Next(0, count)))
;
}
}
while (list.Count < count)
{
if (specialNumPositions.Contains(list.Count))
list.Add(specialNumber);
else
list.Add(rnd.Next(lowerbound, upperbound + 1));
}
return list;
}
public static void Main()
{
int specialNumber = 68; // ensure that 68 is generated 10 times
var list = getRandomNumbers(1000, 1, 100, 68, 10);
foreach(int i in list)
Console.WriteLine(i);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgIHByaXZhdGUgc3RhdGljIFJhbmRvbSBybmQgPSBuZXcgUmFuZG9tKCk7CgogICAgcHVibGljIHN0YXRpYyBJRW51bWVyYWJsZTxpbnQ+IGdldFJhbmRvbU51bWJlcnMoaW50IGNvdW50LCBpbnQgbG93ZXJib3VuZCwgaW50IHVwcGVyYm91bmQsIGludCBzcGVjaWFsTnVtYmVyID0gaW50Lk1pblZhbHVlLCBpbnQgc3BlY2lhbE51bWJlckNvdW50ID0gaW50Lk1pblZhbHVlKQogICAgewogICAgICAgIHZhciBsaXN0ID0gbmV3IExpc3Q8aW50Pihjb3VudCk7CiAgICAgICAgSGFzaFNldDxpbnQ+IHNwZWNpYWxOdW1Qb3NpdGlvbnMgPSBuZXcgSGFzaFNldDxpbnQ+KCk7CiAgICAKICAgICAgICBpZiAoc3BlY2lhbE51bWJlckNvdW50ID4gMCkKICAgICAgICB7CiAgICAgICAgICAgIC8vIGdlbmVyYXRlIHJhbmRvbSBwb3NpdGlvbnMKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzcGVjaWFsTnVtYmVyQ291bnQ7IGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgd2hpbGUgKCFzcGVjaWFsTnVtUG9zaXRpb25zLkFkZChybmQuTmV4dCgwLCBjb3VudCkpKQogICAgICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIAogICAgICAgIHdoaWxlIChsaXN0LkNvdW50IDwgY291bnQpCiAgICAgICAgewogICAgICAgICAgICBpZiAoc3BlY2lhbE51bVBvc2l0aW9ucy5Db250YWlucyhsaXN0LkNvdW50KSkKICAgICAgICAgICAgICAgIGxpc3QuQWRkKHNwZWNpYWxOdW1iZXIpOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBsaXN0LkFkZChybmQuTmV4dChsb3dlcmJvdW5kLCB1cHBlcmJvdW5kICsgMSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbGlzdDsKICAgIH0KICAgIAoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJaW50IHNwZWNpYWxOdW1iZXIgPSA2ODsgLy8gZW5zdXJlIHRoYXQgNjggaXMgZ2VuZXJhdGVkIDEwIHRpbWVzCiAgICB2YXIgbGlzdCA9IGdldFJhbmRvbU51bWJlcnMoMTAwMCwgMSwgMTAwLCA2OCwgMTApOwogICAgZm9yZWFjaChpbnQgaSBpbiBsaXN0KQogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKGkpOwoJfQp9