当前位置:编程学习 > C#/ASP.NET >>

数组里面70%的概率元素值为1,其他的为0,程序怎么写呢?

数组N个元素,70%的元素值为1,其他的为0,程序怎么写呢? --------------------编程问答-------------------- Debug.Log("70%");
for(int i = 0; i < 10; ++i)
{
int random = Random.Range(0, 100);
if(random < 70)
{
array[i] = 1;
}
else
array[i] = 0;

Debug.Log(array[i]);
}

Debug.Log("30%");
for(int i = 0; i < 10; ++i)
{
int random = Random.Range(0, 100);
if(random < 30)
{
array[i] = 1;
}
else
array[i] = 0;

Debug.Log(array[i]);
} --------------------编程问答--------------------

Debug.Log("70%");
for(int i = 0; i < 10; ++i)
{
int random = Random.Range(0, 100);
if(random < 70)
{
array[i] = 1;
}
else
array[i] = 0;

Debug.Log(array[i]);
}

Debug.Log("30%");
for(int i = 0; i < 10; ++i)
{
int random = Random.Range(0, 100);
if(random < 30)
{
array[i] = 1;
}
else
array[i] = 0;

Debug.Log(array[i]);
}
--------------------编程问答-------------------- 有比我自己这个方法更好的吗? --------------------编程问答-------------------- 晕,不就是70%的概率为1呗,整这么绕做啥子
随机一个0-1的小数,小于0.7就是1,大于0.7就是0 --------------------编程问答-------------------- 楼上跟我的方法一样啊,我随机[0, 100)
你随机[0, 1) --------------------编程问答-------------------- 还能有其他办法吗


--------------------编程问答-------------------- random是伪随机的。到最后可能不太准确。

试试看根据前面生成的0和1来决定下一个是0或1。用个sum+=1,到最后sum的值就是1的个数。sum/数组的个数就是1的概率,这样应该会更好些。 --------------------编程问答-------------------- int n = 10;
Random r = new Random();
int[] result = Enumerable.Range(0, N).Select(x => r.Next(0, 10) > 7 ? 0 : 1).ToArray(); --------------------编程问答-------------------- 先给数组赋值 70%为1, 30%为0 然后用洗牌算法洗牌 这样就行了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,