.NET'te Random sınıfında sorun yaşıyorum, küçük bir ayrıntı dışında ince bir iş parçacığı koleksiyonu uyguluyorum. Koleksiyon bir Skip list'dur ve bunu bildiğiniz kişiler eklediğim her düğüm için <= CurrentMaxHeight+1
olan yeni bir yükseklik oluşturmamız gerektiğini bilir, bunu yapmak için kullandığım kod (burada çok verimsiz olduğunu biliyorum, ama işe yarıyor) ve buradaRastgele ve Konular ile ilgili sorun. NET
int randomLevel()
{
int height = 1;
while(rnd.NextDouble() >= 0.5 && height < MaxHeight)
++height;
return height;
}
benim sorundur) artık benim ana öncelik thats bazen atlama listesinin performansını öldürür üst üste birkaç bin elementler için sadece 1 geri bundan alıyorum. Üst üste bu yöntemden sadece 1 tane üretmek için 10.000 öğeye sahip olma şansı çok zayıf görünüyor (oldukça tutarlı bir şekilde gerçekleşiyor).
Yani bir şekildeRandom
nesne ile ilgili bir sorun olduğunu
(tahmin) farz ediyorum, ama etrafta kazma başlamak nerede bilmiyorum. Bu yüzden kimsenin bir fikri olup olmadığını görmek için stackoverflow'a dönüyorum?
Düzenleme
RND-değişken sınıfında SkipList<T>
deklare edilmediği ve (her iplik koleksiyonu .Add çağırır ve ifadeleri ekleyin .randomLevel)
"Rnd" nerede bildirildi? – ChrisF
, ayrı bir iş parçacığı denilen randomlevel() nedir? – Benny
, açıklık beyanı ekledi, bir kez ilan edildi ve birkaç farklı ileti dizisinden çağrıldı. – thr