日期:2014-05-20  浏览次数:20865 次

关于随机数的问题
我想取一系列随机三位数,要求这个三位数的“个位,十位,百位”加起来等于某一个数,比如:13;还有也同样是一三位数,要求这一系列三位数中“个位,十位,百位”最大值减去最小值等于某一个数,比如:5。
这两个算法怎么弄呀,谢谢各位了。

------解决方案--------------------
既然是3位数,那本来就不多,然后满足你的条件的更不多,
所以,两个算法一样:
1,先把满足条件的数字都找出来,放在数组中;
2,使用Random生成一个界于 0 和 数组长度-1的数字X;
3,把数组中的第X个数字返回;
------解决方案--------------------
1.
public int First(int target)
{
Random myRandom = new Random();

int i = 0;
int j = 0;

while (j != target)
{
i = myRandom.Next(100, 1000);
j = Int32.Parse(i.ToString().Substring(0, 1)) + Int32.Parse(i.ToString().Substring(1, 1)) + Int32.Parse(i.ToString().Substring(2, 1));
}

return j;
}

根据需要代入target 比如13
------解决方案--------------------
更正:1.先随机百位(9以内),后十位(先13-百位是否大于9,是9以内 否 13-百位 以内),个位=13-百位-10位