[C++] Random Sayı Hk.
-
Merhaba arkadaşlar . Kısa kesip direk soruyu sorayım . Bilgisayar random sayıyı neye göre oluşturuyor , belirli bi algoritması varsa bu nasıl ?
Ve diğer sorum ;
#include "stdafx.h"
#include "iostream"
#include "time.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"turkish");
unsigned long a,b,sayac=0;cout << "0-100 arası sayı giriniz : ";
cin >> b;
while (1)
{
srand ( time(NULL) );
a = rand() % 100;
if (a==b)
{
cout << sayac << " kere denendi." << endl ;
break;
}
sayac++;
}Bilgisayarın tuttugu sayıyı tekrardan tutmamasını istiyorum . Bunu nasıl yapabilirim?
-
seed olayi function icinde falan cagirilirsa sana ayni sayilari donecektir.o yuzden reseed yapan seylerden kacin senin loop gibi.main icinde seed yapman bu sıkıntını çözecektir.
musdawdaf tarafından 15/Kas/13 00:34 tarihinde düzenlenmiştir -
Ne demek istediğini tam anlayamadım hocam daha yeniyim
-
Kısaca srand(time(NULL)) satırını while'dan önceye koy diyor:)
Rastgele sayı üretme algoritmasını bir matematikçi ya da istatistikçi açıklayabilir tam manasıyla fakat http://en.wikipedia.org/wiki/Pseudorandom_number_generator adresine bakabilirsiniz.
Sonsuz döngü olmasa (kısacası kaç tane rastgele sayı olacağını bilsek) kısa bir algoritma önerecektim fakat sonsuz döngü mevcut. Bu nedenle bir vectore ürettiğiniz sayıyı koymanızı, yeni bir rastgele sayı ürettirirken ise önce vector'de bu sayı var mı diye kontrol etmenizi tavsiye ederim. Örnek: http://www.cplusplus.com/forum/beginner/26777/
-
YeniHarman bunu yazdı
Kısaca srand(time(NULL)) satırını while'dan önceye koy diyor:)
Rastgele sayı üretme algoritmasını bir matematikçi ya da istatistikçi açıklayabilir tam manasıyla fakat http://en.wikipedia.org/wiki/Pseudorandom_number_generator adresine bakabilirsiniz.
Sonsuz döngü olmasa (kısacası kaç tane rastgele sayı olacağını bilsek) kısa bir algoritma önerecektim fakat sonsuz döngü mevcut. Bu nedenle bir vectore ürettiğiniz sayıyı koymanızı, yeni bir rastgele sayı ürettirirken ise önce vector'de bu sayı var mı diye kontrol etmenizi tavsiye ederim. Örnek: http://www.cplusplus.com/forum/beginner/26777/
Hocam çok teşekkür ettim çalıştı :) Hemen bakıyorum adrese.
@musdawdaf hocam sizede cok teşekkürler.
-
musdawdaf bunu yazdı
seed olayi function icinde falan cagirilirsa sana ayni sayilari donecektir.o yuzden reseed yapan seylerden kacin senin loop gibi.main icinde seed yapman bu sıkıntını çözecektir.
ve 2 yıl sonra ne demek istediğini başka bir projemde anlamış oldum üstad :) teşekkürler ..
