C#定时器和随机数
.net.Frameword中提供了一个专门产生随机数的类System.Random,此类默认情况下已被导入,编程过程中可以直接使用。我们知道,计算机并不能产生完全随机的数字,它生成的数字被称为伪随机数,它是以相同的概率从一组有限的数字中选取的,所选的数字并不具有完全的随机性,但就实用而言,其随机程度已经足够了。
我们来看下面的例子
MainForm.cs
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
//usingexample3.RandomHelp;
namespaceexample3
{
publicpartialclassMainForm:Form
{
Timertimer=newTimer();
intzheng;
intshi;
publicMainForm()
{
InitializeComponent();
button1.Click+=button1_Click;
button2.Click+=button2_Click;
//if(textBox3.Text!=null)
//{
//stringm=textBox3.Text;
}
voidtimer_Tick(objectsender,EventArgse)
{
//thrownewNotImplementedException();
//radioButton2_Click(null,null);
//doubler=(example3.RandomHelp.GetIntRandomNumber(int.Parse(textBox1.Text),int.Parse(textBox2.Text)));
//strings=r.ToString();
//label4.Text=s;
if(zheng==1)
{
intr=(example3.RandomHelp.GetIntRandomNumber(int.Parse(textBox1.Text),int.Parse(textBox2.Text)));
strings=r.ToString();
label4.Text=s;
}
if(shi==2)
{
doubler=(example3.RandomHelp.GetDoubleRandomNumber(int.Parse(textBox1.Text),int.Parse(textBox2.Text)));
strings=r.ToString();
label4.Text=s;
}
}
//整数
privatevoidradioButton1_CheckedChanged(objectsender,EventArgse)
{
RadioButtonr=senderasRadioButton;
if(r.Checked==true)
{
zheng=1;
}
}
//实数
privatevoidradioButton2_CheckedChanged(objectsender,EventArgse)
{
RadioButtonr=senderasRadioButton;
if(r.Checked==true)
{
shi=2;
}
}
//开始
privatevoidbutton1_Click(objectsender,EventArgse)
{
timer.Interval=int.Parse(textBox3.Text);
//timer.Interval=500;
timer.Tick+=timer_Tick;
timer.Start();
}
//停止
privatevoidbutton2_Click(objectsender,EventArgse)
{
timer.Stop();
}
}
}
RandomHelp.cs
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
//usingSystem.Windows.Forms.Timer;
namespaceexample3
{
classRandomHelp
{
publicstaticintGetIntRandomNumber(intmin,intmax)
{
Randomr=newRandom();
intran=r.Next(min,max+1);
returnran;
}
//很不错的算法
publicstaticdoubleGetDoubleRandomNumber(intmin,intmax)
{
Randomr=newRandom();
//很不错的算法
doublem=r.NextDouble()*max;
doublen=r.NextDouble()*min;
if(m-n>2.0)
returnm;
else
returnn+3.0;
}
}
}
以上所述就是本文的全部内容了,希望大家能够喜欢。