循环中的随机数

时间:2017-10-02 12:55:37

标签: c# arrays loops

我的函数返回相同的数字序列。   当我在输入列表上给出第一个列表[0]全0和第二个列表[1]全1时,我得到输出列表,例如:

1 1 1 1 0 1 1
1 1 1 1 0 1 1

并且输出上的所有时间生成序列都是相同的。

我的意思是temp [0]和temp [1]具有相同的序列

public List<float[][][]> rozmnarzanie(List<nur> list,Random dnd)
{
    float[][][] ftemp=net.wagi;
    List<float[][][]> temp = new List<float[][][]>();

    for (int i = 0; i < 2; i++) 
    {
        for (int a = 0; a < net.wagi.Length; a++)
        {
            for (int j = 0; j < net.wagi[a].Length; j++)
            {
                for (int k = 0; k < net.wagi[a][j].Length; k++)
                {
                    if(dnd.Next(0,100)<=50)
                    { 
                        ftemp[a][j][k] = list[0].listawagi[a][j][k];
                    }
                    else
                    {
                        ftemp[a][j][k] = list[1].listawagi[a][j][k];
                    }
                }
            }
        }
        temp.Add(ftemp);
    }
    return temp;
}

1 个答案:

答案 0 :(得分:2)

  

我的意思是temp [0]和temp [1]具有相同的序列

正确。您添加两次相同的数组,[ a oslc:Property ; oslc:isMemberProperty true ; oslc:name "pgn" ; oslc:occurs oslc:Zero-or-one ; oslc:valueType xsd:integer ] temp[0]都是对内存中相同位置的引用。你看到的是上次运行的结果。相同的结果将显示在net.wagi中。

您的问题不是关于随机数,而是关于数组是引用类型。

我不知道temp[1]是什么,但解决方案可能类似于:

net.wagi

你弄明白了a,b和c。