我的函数返回相同的数字序列。 当我在输入列表上给出第一个列表[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;
}
答案 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。