【发布时间】:2017-09-29 02:13:33
【问题描述】:
所以我用 c# 制作了一个非常简单的单词生成器程序,效果相对较好。我的问题是如何生成字母出现概率相等的单词,例如。 aaaa、aabb 或 abab
我的代码:
listView1.Items.Clear();
int num_letters = 4;
int num_words = 20;
char[] letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
Random rand = new Random();
for (int i = 1; i <= num_words; i++)
{
string word = "";
for (int j = 1; j <= num_letters; j++)
{
int letter_num = rand.Next(0, letters.Length - 1);
word += letters[letter_num];
}
listView1.Items.Add(word);
【问题讨论】:
-
您似乎已经这样做了。我不明白你在问什么;你已经编写了代码来做你想做的事。
-
另外,我注意到
ToCharArray是不必要的。没有它,您的程序也可以正常工作;letters可以是string。 -
在你的程序中他们会这样做!你已经得到了你想要的。单词中的每个字母都有 1/26 的机会成为字母表中的任何字母。
-
你写的东西怎么让你相信它没有做你想做的事?
-
当然可以。有 456976 个可能的单词,HJYY 就是其中之一,平均会在 456976 次尝试中生成一次。就像AAAA会在456976生成一次,OOPS会在456976生成一次,GOAT会在456976生成一次等等。
标签: c# random probability