大家好,请教个问题,我在C#中用随机数这个类来产生随机数,为什么每次产生的都是那几个数,而不是变化的数呢?在我写的一个冒泡排序算法,无论我运行多少次,那几个数都是不变的(大家可以那去编译运行下看),我在C语言中也用国那个随机数,但是在C语言中,每次运行它产生的数都是不一样的,如果我要在C#中用随机数这个类,来实现和c语言中随机数这个东西一样的功能,我要如何来做呢?下面是代码示例:using System;
using System.Collections;
class Array1
{
private int [] arr;
private int numElement;
private int upperBound;
public Array1(int size)
{
arr=new int [size];
upperBound=size-1;
numElement=0;
}
public void DisplayElement()
{
foreach (int i in arr)
{
Console.Write("{0} ",i);
}
Console.WriteLine();
}
public void Insert(int items)
{
arr[numElement]=items;
numElement++;
}
public void Clear()
{
for (int i=0;i<arr.Length;i++)
{
arr[i]=0;
}
numElement=0;
}
public void BubbleSort()
{
int temp;
for (int i=0;i<10;i++)
{
for (int k=1;k<10;k++)
{
if (arr[k]<arr[k-1])
{
temp=arr[k-1];
arr[k-1]=arr[k];
arr[k]=temp;
}
}
DisplayElement();
Console.WriteLine();
}
}
}
class Test
{static void Main ()
{
Array1 arr=new Array1(10);
Random r=new Random(100);
for (int i=0;i<10;i++)
arr.Insert((int)(r.NextDouble()*100));
Console.WriteLine("Before sorting:");
arr.DisplayElement();
Console.WriteLine("During sorting :");
arr.BubbleSort();
Console.WriteLine("After sorting");
arr.DisplayElement();
}
}
如果代码写的不好,希望大家给出改进的意见。谢谢!
using System.Collections;
class Array1
{
private int [] arr;
private int numElement;
private int upperBound;
public Array1(int size)
{
arr=new int [size];
upperBound=size-1;
numElement=0;
}
public void DisplayElement()
{
foreach (int i in arr)
{
Console.Write("{0} ",i);
}
Console.WriteLine();
}
public void Insert(int items)
{
arr[numElement]=items;
numElement++;
}
public void Clear()
{
for (int i=0;i<arr.Length;i++)
{
arr[i]=0;
}
numElement=0;
}
public void BubbleSort()
{
int temp;
for (int i=0;i<10;i++)
{
for (int k=1;k<10;k++)
{
if (arr[k]<arr[k-1])
{
temp=arr[k-1];
arr[k-1]=arr[k];
arr[k]=temp;
}
}
DisplayElement();
Console.WriteLine();
}
}
}
class Test
{static void Main ()
{
Array1 arr=new Array1(10);
Random r=new Random(100);
for (int i=0;i<10;i++)
arr.Insert((int)(r.NextDouble()*100));
Console.WriteLine("Before sorting:");
arr.DisplayElement();
Console.WriteLine("During sorting :");
arr.BubbleSort();
Console.WriteLine("After sorting");
arr.DisplayElement();
}
}
如果代码写的不好,希望大家给出改进的意见。谢谢!
例如产生1-99的随机数,
Random r = new Random();
int i=r.Next(0,100);
Response.Write(r.Next().ToString());
private Random ra = new Random(DateTime.Now.Millisecond);
public float[] GetRandomNum(float[] Nums, int N)
{
if (Max < N) N = Max;
List<int> lst1= new List<int>();
List<int> lst2= new List<int>();
for (int i = 0; i < Nums.Length; i++) lst1.Add(Nums[i]);
Random R = new Random();
for (int n = 0; n < N; n++)
{
int r = R.Next(0, lst1.Count);
lst2.Add(lst1[r]); lst1.RemoveAt(r);
}
lst2.Sort();
return lst2.ToArray();
}
其它的各位大大都提到了,我就学习了。:)
static Random rnd=new Random(100);
static void Main ()
{
Array1 arr=new Array1(10);
for (int i=0;i <10;i++)
arr.Insert((int)(rnd.NextDouble()*100));
Console.WriteLine("Before sorting:");
arr.DisplayElement();
Console.WriteLine("During sorting :");
arr.BubbleSort();
Console.WriteLine("After sorting");
arr.DisplayElement();
} 就这么简单,明白了吗?
static void Main ()
{
Array1 arr=new Array1(10);
for (int i=0;i <10;i++)
arr.Insert((int)(rnd.NextDouble()*100));
Console.WriteLine("Before sorting:");
arr.DisplayElement();
Console.WriteLine("During sorting :");
arr.BubbleSort();
Console.WriteLine("After sorting");
arr.DisplayElement();
}
千万不要写上100啊!
private Random ra = new Random(DateTime.Now.Millisecond);
public float[] GetRandomNum(float[] Nums, int N)
{
if (Max < N) N = Max;
List <int> lst1= new List <int>();
List <int> lst2= new List <int>();
for (int i = 0; i < Nums.Length; i++) lst1.Add(Nums[i]);
Random R = new Random();
for (int n = 0; n < N; n++)
{
int r = R.Next(0, lst1.Count);
lst2.Add(lst1[r]); lst1.RemoveAt(r);
}
lst2.Sort();
return lst2.ToArray();
}
例如产生1-99的随机数,
Random r = new Random();
int i=r.Next(0,100);