1、给定一个数字,得到一个随机数组(数组长度可以规定死)2、数组里面的数字和等于给定的数字数字。3、 数组里面的数字要随机数,随机数范围,>0 && < 5000 如: int sz = 3230 int[] szs = new int[3]; 要求 :szs[0] + szs[1] +szs[2] = sz; 1040 + 1235 + 955 = 3230
我有1函数,不怎么好限定范围,各位大侠看看 public int[] GetNumbersWithTotal(int total, int count)
{
List<int> positions = null ;
Random random = new Random();
positions = new List<int>();
for (int i = 0; i < count - 1; i++) positions.Add(random.Next(total));
positions.Sort();
positions.Add(total);
int lastValue = 0;
for (int i = 0; i < positions.Count; i++)
{
int diff = positions[i] - lastValue;
lastValue = positions[i];
positions[i] = diff;
}
return positions.ToArray();
}哪位大侠能写成 int[] 函数(最小值,最大值,数组长度,数组和),就非常完美了。
我有1函数,不怎么好限定范围,各位大侠看看 public int[] GetNumbersWithTotal(int total, int count)
{
List<int> positions = null ;
Random random = new Random();
positions = new List<int>();
for (int i = 0; i < count - 1; i++) positions.Add(random.Next(total));
positions.Sort();
positions.Add(total);
int lastValue = 0;
for (int i = 0; i < positions.Count; i++)
{
int diff = positions[i] - lastValue;
lastValue = positions[i];
positions[i] = diff;
}
return positions.ToArray();
}哪位大侠能写成 int[] 函数(最小值,最大值,数组长度,数组和),就非常完美了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货