C programlama random üst limiti

grigon

Kilopat
Katılım
7 Ağustos 2017
Mesajlar
176
Çözümler
1
C dilinde random fonksiyonu olan rand ile rastgele sayı ürettiğimizde Max 32767 sayısına kadar değer üretebiliyor. Random fonksiyonunun üst limitini nasıl arttırabiliriz? Mesela ben 1 ile 40000 arasında sayı üretmek istiyorum, aklıma 2 kere sayı üretip bunları toplamak geliyor ama bu da kullanışsız bir yöntem. Fikriniz varsa yardımcı olursanız sevinirim.
 
Başkent Üniversitesinden Alıntı;

C++'da böyle yazdığım zaman sorunsuz üretiyor ancak "x=rand() %100000 + 1;" yazdığımda 32767'ye kadar üretiyor, değişik
C++:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;

int main() {
    int x;
srand(time(NULL));
for(int i=0;i<100;i++){

x=rand() %100000 + 32767;
cout<<x<<endl;
}

    system("pause");
    return 0;
}
 
Define ile RAND_MAX değerini değiştirmeyi denedim ama yine de stdlib.h kütüphanesindeki değeri kullanıyor, kütüphaneye girip baktım 0x7FFF hex ile tanımlanmış bunu yükseltsem zaten kütüphaneyi değiştirmeme izin vermiyor. Long int kullanmakda işe yaramıyor çünkü rand fonksiyonu 16 Bit tanımlandığı için üretemiyor sayıyı. Bilemiyorum ne yapmalı.
 
C++'da böyle yazdığım zaman sorunsuz üretiyor ancak "x=rand() %100000 + 1;" yazdığımda 32767'ye kadar üretiyor, değişik
C++'da rand kullanılmaz. Çok farklı random üretebilen araçlar mevcut. Onların böyle kısıtlamaları yok.
Define ile RAND_MAX değerini değiştirmeyi denedim.
Tanımlı olduğu için yapamazsınız. Birden fazla rand ile yapmalısınız. Ya da bir taneyi istediğiniz menzil ile çarparsınız sonrasında o sayıya kadar olan başka bir rand eklersiniz. Bu sayede 2 tane olmuş olur bir de çarpma işlemi yapmış olursunuz.
 
Bilgisayar Mühendisliği okuyorum ve 1. Sınıf C++ Derslerinde öğretiliyor. Neden kullanılmadığını merak ettim izah ederseniz sevinirim.
 
Son düzenleyen: Moderatör:
Bilgisayar Mühendisliği okuyorum ve 1. Sınıf C++ Derslerinde öğretiliyor. Neden kullanılmadığını merak ettim izah ederseniz sevinirim.
Çüncü C++'ta direkt #include <random> diye bir kütüphane var. İçinde çeşit çeşit rastgele değer oluşturabileceğiniz metotlar var. Buradan bakabilirsiniz. srand ve rand kullanmak daha çok C ilkelliğinde kalıyor. Düzgün C++ kullanan kimse srand ve rand kullanmaz. C'ye göre çok büyük bir dil. Birçok yeniliği var. O güzellikleri kullanmadıktan sonra C++ demenin bir anlamı kalmıyor.
 
C dilinde random fonksiyonunun çok nitelikli olmadığını biliyordum ama üzerine çalışma fırsatı buldukça daha da farkına vardım ki random konusunda büyük sıkıntıları var C'nin. Random'u üretme şekli ve srand kullanımı çok problemli.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…