我想在计时器滴答事件中在指定范围内生成随机数的序列。第一个随机数与下一个随机数之差应为0.5,并延续模式。
public MainWindow()
{
InitializeComponent();
aTimer = new System.Timers.Timer(500);
aTimer.Elapsed += new ElapsedEventHandler(timer_Tick);
aTimer.AutoReset = true;
}
Random random = new Random();
private void timer_Tick(object sender, ElapsedEventArgs e)
{
Dispatcher.Invoke(() => CreatePoint(random.Next(0, 5), random.Next(0, 5)));
}
我能够生成随机数,但是如何指定两个随机数之间的距离?
答案 0 :(得分:0)
只需使用随机数生成-0.5到0.5的值并将其添加到先前的值即可。 通过重复使用部分代码,您可以执行以下示例修改
Random random = new Random();
double currentX = 0d;
double currentY = 0d;
private void timer_Tick(object sender, ElapsedEventArgs e)
{
// add the random modifier between -0.5 and 0.5 to each x/y values
currentX += GetRandomModifier();
currentY += GetRandomModifier();
}
private double GetRandomModifier()
{
// generate a number between -0.5 and 0.5
return random.Next(-50, 50) / 100d;
}