日期:2014-05-19  浏览次数:20904 次

[请教]C#类似老虎机的随即算法?
谁能给我用代码简单具个例子,类似老虎机的随即算法,比如我这里有3张图片,星星,月亮,太阳,然后随即一定纪律3个都是星星,怎么用代码实现?

------解决方案--------------------
用多重随机,随机中的战斗机,哦耶!~~
------解决方案--------------------
我的思路是这样:
3张图片排列组合有27种
各种几率均等只需在0~26之间随机整数就可以了。
如果要控制某一种情况的几率可以用两次随机
如:
if(rand%100 == 0)
{
//特定情况,几率为 1%
}
else
{
//其他情况再取随机
}
------解决方案--------------------
string[] DT =
{
"星星 ",
"月亮 ",
"太阳 "
};

Random MyRandom1 = new Random();
Random MyRandom2 = new Random();
Random MyRandom3 = new Random();

MessageBox.show(DT[MyRandom1.Next(DT.Length)]+DT[MyRandom2.Next(DT.Length)]+DT[MyRandom3.Next(DT.Length)]);
------解决方案--------------------
if (vRandom.Next(10000) == 0) //万分之一得到三个星星
Text = "星星,星星,星星 ";
else if (vRandom.Next(1000) == 0) // 剩下千分之一的机会得到三个月亮
Text = "月亮,月亮,月亮 ";
else if (vRandom.Next(500) == 0) // 剩下五百分之一的机会得到三个太阳
Text = "太阳,太阳,太阳 ";
else if (vRandom.Next(100) == 0) // 剩下百分之一的机会
Text = "星星,星星,月亮 ";
else if (vRandom.Next(100) == 0) // 剩下百分之一的机会
Text = "星星,星星,月亮 ";
else if (vRandom.Next(100) == 0) // 剩下百分之一的机会
Text = "月亮,月亮,星星 ";
else if (vRandom.Next(100) == 0) // 剩下百分之一的机会
Text = "月亮,月亮,太阳 ";
else if (vRandom.Next(100) == 0) // 剩下百分之一的机会
Text = "太阳,太阳,星星 ";
else if (vRandom.Next(100) == 0) // 剩下百分之一的机会
Text = "太阳,太阳,月亮 ";
else Text = "星星,太阳,月亮 "; // 剩下都是

------解决方案--------------------
或者就用一个数组a【星星,月亮,太阳】,用3次随机数也可以。
string text= " ";
for(int i=0;i <3;i++)
{
text = text + a[random%3];
}
最后也可以得出我们要得

------解决方案--------------------
if (vRandom.Next(10000) == 0) //万分之一得到三个星星
Text = "星星,星星,星星 ";
else if (vRandom.Next(1000) == 0) // 剩下千分之一的机会得到三个月亮
Text = "月亮,月亮,月亮 ";
else if (vRandom.Next(500) == 0) // 剩下五百分之一的机会得到三个太阳
Text = "太阳,太阳,太阳 ";
else if (vRandom.Next(100) == 0) // 剩下百分之一的机会
Text = "星星,星星,月亮 ";
else if (vRandom.Next(100) == 0) // 剩下百分之一的机会
Text = "星星,星星,月亮 ";
else if (vRandom.Next(100) == 0) // 剩下百分之一的机会
Text = "月亮,月亮,星星 ";
else if (vRandom.Next(100) == 0) // 剩下百分之一的机会
Text = "月亮,月亮,太阳 ";
else if (vRandom.Next(100) == 0) // 剩下百分之一的机会
Text = "太阳,太阳,星星 ";
else if (vRandom.Next(100) == 0) // 剩下百分之一的机会
Text = "太阳,太阳,月亮 ";
else Text = "星星,太阳,月亮 "; // 剩下都是

怪不得不易玩