给定几个连续的整数集合,如何通过一个系数 进行处理, 使此集合随机生成排序?
{x,x+1,x+2,x+3}希望这里的数,通过某个变量处理后 能随机变成 {x+2,x,x+3,x+1},{x+1,x,x+2,x+3}之类的
参考代码:
public void TestMethod()
{
var date = DateTime.Today;
var result = new List<int>();
var weekNum = 1;
for (int i = 0; i < 365; i++)
{
date = date.AddDays(1);
if (date.DayOfWeek == DayOfWeek.Sunday)
{
weekNum++;
Console.WriteLine("==============");
}
Console.WriteLine(Calc(date, weekNum));
}
}
public int Calc(DateTime date, int weekNum)
{
int finalIndex = 0;
var nums = new List<int>() { 0, 1, 2, 3, 4, 5, 6 };
var num = date.Year + date.Month + date.Day + weekNum;
if (date.DayOfWeek != DayOfWeek.Sunday)
{
var day = date.AddDays(-(int)date.DayOfWeek);
while (!DateTime.Equals(day, date))
{
var preNum = day.Year + day.Month + day.Day + weekNum;
var index = preNum % (7 - (int)day.DayOfWeek);
nums.RemoveAt(index);
day = day.AddDays(1);
}
}
finalIndex = num % (7 - (int)date.DayOfWeek);
return nums[finalIndex];
}