SORU
10 EKİM 2014, Cuma


`Rand yararlılığı ()` veya `diyen srand ()`mı?

Amaç: bilimsel hesaplamalar için benim kodrand(), std::rand(), std::random_shuffle() ve diğer fonksiyonları kullanın. Benim sonuçları yeniden elde edebilmek için, ben her zaman açıkça rasgele tohum belirtin ve srand()) ayarlayın. Bu libxml2 srand() erken hakkımı sonra da srand() tembel, ilk kullanım üzerinde arar - bunu ne zaman farkettim son zamanlarda düzgün çalışıyordu.

** 21, ama cevabı aldım doldurdum:

Başlatma libxml2 ilk o zaman. Bir kütüphane yapılması için tamamen yasal bir karar. Gerekir değil kimse ** 8, ve man sayfasına bir yere çağıran bekliyoruz srand() birden çok kez kullanarak belirtir kaçınılmalıdır

Bu aslında benim sorum şimdi. Eğer genel politikası her lib//Ara srand() ve ben/belki de burada ve orada, bilmiyorum gerçekten böyle yararlı olabilir. Ya nasıl rand() yararlı mı?

Neden böyle düşündüğümü, (yazılı olmayan) genel politika lib hiç srand() aramalı ve uygulamayı yalnızca bir kez başlangıçta aramalı. (Almayan parçacığı çok dikkate. Bu durumda, siz yine de farklı bir şey kullanmak gerekir sanırım.)

Ben de aslında srand(), ama ben herhangi bir bulamadık diyoruz biraz araştırma yapmaya çalıştı. Hiç var mı?

Benim geçerli çözüm bu çirkin kod:

{
    // On the first call to xmlDictCreate,
    // libxml2 will initialize some internal randomize system,
    // which calls srand(time(NULL)).
    // So, do that first call here now, so that we can use our
    // own random seed.
    xmlDictPtr p = xmlDictCreate();
    xmlDictFree(p);
}

srand(my_own_seed);

Muhtemelen sadece temiz çözüm bu hiç kullanmamayı ve kendi rastgele jeneratör (C 11 <random> belki) kullanmak için sadece olacaktır. Ama asıl soru bu değil.Soru srand(), aramalı kim ve eğer herkes yaparsa, nasıl rand() öyleyse işe yarar mı?

CEVAP
10 EKİM 2014, Cuma


Bunun yerine <random> Yeni Başlık kullanın. Birden fazla motor örneği için farklı algoritmalar kullanan ve daha da önemlisi sizin için, bağımsız tohumlar verir.

[Düzenle] "rand bölümünü oluşturur." yararlı cevap için ^strong>rastgelenumaraları. Bunun için iyi bir şey. Eğer hassas bir denetim, tekrar Dahil İhtiyacınız varsa, sadece bilinen bir tohum ama bilinen bir algoritma olmamalıdır. srand en iyi ihtimalle bu tam bir çözüm değil bu yüzden sabit bir tohum verir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BlackmillMusic

    BlackmillMus

    3 Kasım 2010
  • Blunty

    Blunty

    13 Mart 2006
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010