Random rd = new Random();其实不是随机的,每次生成的都是相同的看似随机的序列。
解决方案 »
- 请问如何在program中设置form1中的控件
- 一个奇怪的Win7+IE9 BHO问题
- 如何把2011-4-3转换成2011-04-03格式,转换后还是赋值给DateTime类型的?
- 控制台时间
- gridview怎样增加一个选择列,用图标表示,选中后图标改变?
- 如何高效的让主线程等待其他多线程的停止
- 请教各位:什么是隐藏基类方法,有什么优点?
- 有没办法获得当前应用程序在内存中创建的所有实例(对象).
- (vb.net) Chr(27) & "P" & vbNullChar & Chr(255) & vbCr 这句转换成C#怎么写!
- 在Sql Server数据库定义了主键??在C#程序中怎样用代码获得主键列名??
- CSDN高校俱乐部线上编程挑战赛,奖品多多~
- 新手初学线程问题?
for (int i = 0; i < 100; i++)
{
list.Add(new Random(DateTime.Now.Millisecond).Next(1, 8));
System.Threading.Thread.Sleep(1);
} foreach (var item in list)
{
MessageBox.Show(item.ToString());
}
List<int> aa = new List<int>();
Random rd = new Random(); for (int a = 0; a < 10; a++)
{
aa.Add(rd.Next(1, 8));
}种子问题,
系统这个种子和时间有关.
你下面的一个一个的弹出所以感觉是对的.因为弹出你消耗了时间,所以下一个Random的种子就不一样的了.
如果你短用控制台输出,后面一种情况也是一样的.楼主乳头不错.
随机数的生成是从种子值开始。 如果反复使用同一个种子,就会生成相同的数字系列。 产生不同序列的一种方法是使种子值与时间相关,从而对于 Random 的每个新实例,都会产生不同的系列。 默认情况下,Random 类的无参数构造函数使用系统时钟生成其种子值,而参数化构造函数可根据当前时间的计时周期数采用 Int32 值。 但是,因为时钟的分辨率有限,所以,如果使用无参数构造函数连续创建不同的 Random 对象,就会创建生成相同随机数序列的随机数生成器。
DataTable table = new DataTable();
Random randomData = new Random();
int j = 0;
for (j = 1; j < 11; j++)
{
DataRow row = table_chart.NewRow();
row[0] = j;
row[1] = j * 9; for (int k = 2; k < columns.Count; k++)
{
row[k] = randomData.Next(1, 99);
}
table .Rows.Add(row);
}