Я хочу нормализовать вес в списке частиц.Эти веса принадлежат частицам-объектам.Я пытаюсь нормализовать их, разделив их на сумму весов.Все веса объявлены в двойных.Когда программа начинает деление в начале списка, значение является правильным, но вскоре после второго или третьего деления я получаю неправильные результаты ... что приводит к тому, что сумма весов после операции не равна 1, чтодолжно быть.Может кто-нибудь помочь мне с этой проблемой?Может быть, что-то делать с потоками?Спасибо заранее ..
// normalizing weights
double weightsum = 0;
double check = 0;
List<ParticleRobot> temporalparticleSet = new List<ParticleRobot>();
for (int i = 0; i < particleSet.Count; i++)
{
weightsum = weightsum + this.particleSet[i].Weight;
}
Program.Weightsum = weightsum;
Console.WriteLine("Sum of unnormalized particleweights is " + weightsum);
foreach (ParticleRobot p in this.particleSet)
{
Program.Weight = p.Weight;
p.Weight = Program.Weight / Program.Weightsum;
Console.WriteLine("Updated Particleweight is now : " + p.Weight);
}
// checking that they sum up to 1
for (int i = 0; i < particleSet.Count; i++)
{
check = check + this.particleSet[i].Weight;
}
Console.WriteLine("Check: Sum of particles-weights is = " + check);