【发布时间】:2016-08-15 11:10:47
【问题描述】:
我是 C# 和随机数生成器的新手,但需要为我正在学习的课程编写一个模拟器。我的 for 循环和用户定义的变量有困难。我在 Visual Studio 中编码,需要用户从列表中选择一个数字(或将数字输入为文本),但程序将其读取为整数,而不是字符串,然后将此整数用作次生成随机数。
稍后我需要为这个随机数生成器分配一个概率分布,但现在我只需要运行这个东西!我收到一个错误,它无法将 int 转换为字符串(反之亦然,具体取决于我的编码方式)。以及我的局部变量 i 未分配的错误。我查看了类似生成器的其他代码,但我看不出我的 for 循环有什么不同。请帮忙!下面是表单空间 C# 代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace GenerateProfile
{
public partial class Form1 : Form
{
int N;
public Form1()
{
InitializeComponent();
}
private void ChooseN_SelectedIndexChanged(object sender, EventArgs e)
{
N = ChooseN;
}
private void SBtn_Click(object sender, EventArgs e)
{
Random rnd = new Random();
int num = rnd.Next(0, 100);
pi.Text = num.ToString();
for (int i; <= N; i++)
{
num = rnd.Next(0, 100);
pi.Text = pi.Text + num.ToString();
}
}
private void ClBtn_Click(object sender, EventArgs e)
{
Close();
}
}
}
【问题讨论】:
-
您至少描述了三个错误。 给我们一个程序,清楚地演示其中一个并说出哪个。不要让试图帮助你的人不得不猜测你的问题是什么或你的代码是什么。制作一个完整的小例子,清楚地显示问题。错误信息有一个位置;告诉我们位置是什么。
-
for (int i; <= N; i++)什么小于或等于N?另外,ChooseN是什么?它没有在任何地方定义(根据你的错误判断,它可能是一个字符串,而不是一个 int) -
在上面的程序中,您使用“ChooseN”而不说它是什么。这是什么?
-
它在哪一行。我无法遵循您的代码,但是要将字符串更改为 int 您需要对其进行解析。有多种选择。 msdn.microsoft.com/en-us/library/bb397679(v=vs.110).aspx
-
解决此问题后,有关如何修改随机数生成器生成的分布的简短教程,请参阅ericlippert.com/2012/02/21/generating-random-non-uniform-data
标签: c# random numbers generator simulator