C++ Random Sayı

Bu konuyu okuyanlar

ErtuCH

Öğrenci
Cezalı
Katılım
8 Ocak 2018
Mesajlar
26
Reaksiyon puanı
0
Puanları
1
Yaş
21
Merhaba c++ da 1 ile herhangi bir sayı arasında random sayılar üretebiliyorum ama mesela 45 ile 90 arasına indirince bazen 90 dan daha büyük yada 45 den daha küçük sayılar üretebiliyor bu sorunu nasıl aşabilirim ? Yazdığım kod:

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
enbas:
srand(time(0));
int x,y,random;
cout << "1.Sayi: ";
cin >> x;
cout << "2.Sayi: ";
cin >> y;
random = rand() % x + y;
cout << "2 sayi arasindaki random sayi: " << random << endl;
goto enbas;
return 0;
}

Çalıştırırsanız bazen yakın aralıktaki sayılardan daha büyük veya daha küçük sonuçlar verdiğini görürsünüz.
 

Kalenderadam

Doçent
Katılım
1 Eylül 2015
Mesajlar
735
Reaksiyon puanı
205
Puanları
43
Merhaba c++ da 1 ile herhangi bir sayı arasında random sayılar üretebiliyorum ama mesela 45 ile 90 arasına indirince bazen 90 dan daha büyük yada 45 den daha küçük sayılar üretebiliyor bu sorunu nasıl aşabilirim ? Yazdığım kod:

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
enbas:
srand(time(0));
int x,y,random;
cout << "1.Sayi: ";
cin >> x;
cout << "2.Sayi: ";
cin >> y;
random = rand() % x + y;
cout << "2 sayi arasindaki random sayi: " << random << endl;
goto enbas;
return 0;
}

Çalıştırırsanız bazen yakın aralıktaki sayılardan daha büyük veya daha küçük sonuçlar verdiğini görürsünüz.
Hocam kodlama konusunda pek fazla bir şey anlamam fakat sizden bir ricam olacak. Kendi şifre oluşturucu program yapmak istiyorum fakat ilgim yok fazla. Bu konuda yardım ederseniz sevinirim. Böyle bir program var mı?
 

ErtuCH

Öğrenci
Cezalı
Katılım
8 Ocak 2018
Mesajlar
26
Reaksiyon puanı
0
Puanları
1
Yaş
21
Nasıl bir program?
 

annttiigs

Profesör
Emektar
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
38
Öncelikle mod x + y demek orada mesela 90 + 45 = 135. Bu durumda mod 135 alıyorsun ki bu durumda çok normal öyle sonuçların gelmesi.

(random % (max - min)) + min

buralarda biryerlerde bir tane 1 eklemek gerek. onu da sen bul deneye deneye.

mesela;

45 - 90 arası.

random = 135
90 - 45 = 45
135 % 45 = 0
0 + 45 = 45.

136 -> 46
137 -> 47
...
 
Üst