March 04, 2013

Merhaba Salih,
Buralardayım aslında ben ama sesim soluğum çıkacak halde değil. D ile geliştirdiğim programımda yapay zeka çekirdeği de kabul edilebilecek modüllerimi tasarlıyorum. Çok yorucu zamanlar bu aralıklar ama bir o kadar da keyifli.

Uniform işlevinin ürettiği değerleri rasgelelik kavramı ile bağdaştırmak çok isabetli olmaz diye düşünüyorum ben de: Doğada daha keyifli ve eğlenceli desenler keşfedebilir, bu desenleri uygun bir analiz sürecinden geçirip programlayabilirsin. Ha şimdi örnek verebilecek misin diyeceksin, benim örnek vermemden ziyade senin örneği yakalaman sanırım en doğru yaklaşım olur. Bu sözümden; rasgelelik kavramının algıdan algıya değişiklikler gösterebileceği anlaşılabilir. Yani bana rasgeleymiş gibi görünen başkasına doğal, bir başkasına pekala mantıklı bir dizilim gibi görünebilir

Yukarıda söylediklerim ışığında göstermiş olduğun örneklerin bana bir şey ifade etmediğini belirtmeden geçemeyeceğim. iki veri kümesinin eşleşmesinden "bu rasgeledir sonucunu" çıkarmamız doğru olmaz, bir süreklilik şart elbet :-))

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 04, 2013

Alıntı (Salih Dinçer):

>

Elbette bu bir tesadüf ama genelde uniform'un ürettiği rasgele değişkenleri beğenmiyorum.

uniform Mersenne Twister denen algoritmayı kullanıyor.

Rasgele sayı dizisi üreticilerinin çok farklı ayarları olabiliyor: kaç sayıdan sonra tekrarlasın, sayıların benzerlikleri nasıl olsun, vs. std.random modülünde MersenneTwisterEngine diye bir tür var. Parametreleriyle oynayarak senin işine uygun olan bir dizi üreticisi oluşturabilirsin.

uniform, std.random içinde Mt19937 adı verilmiş olan ayarları kullanıyor:

alias MersenneTwisterEngine!(uint, 32, 624, 397, 31, 0x9908b0df, 11, 7,
                            0x9d2c5680, 15, 0xefc60000, 18)
   Mt19937;

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 10, 2013

Mert ağabey, ben bu konuları biraz daha düşüneyim...:)

Alıntı (acehreli:1362420379):

>

Parametreleriyle oynayarak senin işine uygun olan bir dizi üreticisi oluşturabilirsin.
Teşekkürler Ali hocam, parametreler ile oynayacağım ama algoritmanın temeli konusunda çekincelerim var...

Bu arada parametreler konusunda şu bilgiler faydalıymış:

struct MersenneTwisterEngine(UIntType, size_t w, size_t n, size_t m, size_t r,
                            UIntType a, size_t u, size_t s,
                            UIntType b, size_t t,
                            UIntType c, size_t l)
   if(isUnsigned!UIntType)
{
   ///Mark this as a Rng
   enum bool isUniformRandom = true;
/**
Parameter for the generator.
*/
   enum size_t wordSize = w;
   enum size_t stateSize = n;
   enum size_t shiftSize = m;
   enum size_t maskBits = r;
   enum UIntType xorMask = a;
   enum UIntType temperingU = u;
   enum size_t temperingS = s;
   enum UIntType temperingB = b;
   enum size_t temperingT = t;
   enum UIntType temperingC = c;
   enum size_t temperingL = l;

   /// Smallest generated value (0).
   enum UIntType min = 0;
   /// Largest generated value.
   enum UIntType max =
       w == UIntType.sizeof * 8 ? UIntType.max : (1u << w) - 1;
   /// The default seed value.
   enum UIntType defaultSeed = 5489u;

   static assert(1 <= m && m <= n);
   static assert(0 <= r && 0 <= u && 0 <= s && 0 <= t && 0 <= l);
   static assert(r <= w && u <= w && s <= w && t <= w && l <= w);
   static assert(0 <= a && 0 <= b && 0 <= c);
   static assert(a <= max && b <= max && c <= max);

   :    :    :

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 10, 2013

Alıntı (Salih Dinçer):

>

algoritmanın temeli konusunda çekincelerim var...

Eğer ilgileniyorsan rasgele sayı üretimiyle ilgili sorunlara ve Mersenne Twister'ın o sorunların bazılarını taşımadığına değinen şu yazıdan başlayabilirsin:

http://en.wikipedia.org/wiki/Pseudorandom_number_generator

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

1 2
Next ›   Last »