Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Programlama Dillerindeki Randomize Olayı...


kavel

Öne çıkan mesajlar

Randomize olayı nedir ne değildir?
nedir derken yanlış anlamayın ne işe yaradığını biliyorum ama bu komut nasıl çalışır? neye göre bir sayı üretir. İki farklı mantıkla çalışıyor sanırım ama bu mantıklar nelerdir ve nasıl çalışırlar onları bilmiyorum. Ayrıntılı olarak bilgi verecek birileri varsa sevinirim.

NOT : Benim ingilizcem uzun metinleri çevirebilecek kadar iyi değildir. Bu yüzden TR dışındaki sayfalara link vermezseniz sevinirim.[hline]Uniyasam.Com Admin / ICQ#85889898
Link to comment
Sosyal ağlarda paylaş

random sayı diye bir şey yok aslında. bu fonksiyonlar karışık işlemlerle bir sayı üretiyorlar

şimdi dediğim gibi işlemlerle ürettikleri için birkaçkere randomu kullanırsan hep aynı seriyle karşılaşırsın çünkü aynı işlemlerle üretiliyor.

bu yüzden seed denen şey kullanılır. bu da bu işlemelrin başlangıcıdır yani sen randomu kullanırken seedi 2 alırsan ve 5 alırsan farklı sonuç elde edersin

ve tabiki randomdan çıkabilcek sayıyı kendi istediğin sınırlarda tutmak için "mod" kullanacagız. mesela zar düşünelim random sayı üretip bunun mod 6 sını alırsak 0,1,2,3,4,5 sayılarını elde edebiliriz. eğer çıkacak sonucu 1'le toplarsak 1-6 arası bir sayı elde etmiş oluruz. örneğin demin dediğim seed olayını burada düşünürsek mesela 5 tane zar atacağız ve bu işlemi 5 kere tekrar ediyoruz

eğer ilk seferde 2 5 1 3 5 atarsak diğerlşerinde de 2 5 1 3 5 gelecek çünkü aynı işlemler aynısıyla başlıyor bu yüzden her birinde farklı bir seed girersen bu değerler farklı çıkmış olur.

#include //bu srand ve rand için

cout << "Enter seed: ";
cin >> seed;
srand( seed );
cout <<1 + rand() % 6 ;

tabiki yazdığın proğramda sürekli farklı bir seed girmek veya kullanıcıdan istemek saçma olur o yüzden mesela saatin saniyesini seed olarak kullanılır

#include
#include //bu time için

srand( time( 0 ) );
cout <<1 + rand() % 6 ;

umarım yardımcı olabilmişimdir. benden daha iyi bilenler de hatam varsa düzeltirler eksiğim varsa eklerler zaten :)
Link to comment
Sosyal ağlarda paylaş

said:
Etos, 21 November 2003 19:17 tarihinde demiş ki:
java'dan haberim yok fakat c++ de saati seed olarak almak dışında bir yol yok.


void srand (unsinged int seed);

unsigned int olan herhangi bir değer seed olarak alınabilir,istersen saat veya milisaniye yada kullanıcı clickleri ne istersen

Bide azmış kudurmuş bazı arkadaşlar varmış http://www.fourmilab.ch/hotbits/ bunlar da radyoaktif bi maddenin ışımalarından random sayı çıkartıolar.

matematiksel random sayılar içinde şöyle bişi göstertti;
http://www.agner.org/random/
Link to comment
Sosyal ağlarda paylaş

said:
RazorJimmy, 21 November 2003 16:59 tarihinde demiş ki:
Java'nın math.rand() metodu gayet de gerçek randomizer olarak çalışıyor.. milyon defa dene istersen, hiçbir sayı serisi bir diğerinin aynısı şekldinde üretilmiyor.. Orda bir hatan olabilir bence..[hline]K1cK S0m3 4sS W1tH a L4rg3 Tr0uT productions brought to you by
RazorJimmy @ ICQ# 12858821

java daha gelişmiş bir dil olduğu için onda bu işler o metotta olabilir yani math.rand() diyince sistem saatine bakıp alıyor olabilir.

daha iyi bilenler bizi aydınlatırsa sevinirim tabii
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...