lostyazilim
tr.link

Random Sayıda Aynı Sayı Gelince Tekrar Random Atamak?

9 Mesajlar 6.708 Okunma
lstbozum
tr.link

PorFavorDama PorFavorDama WM Aracı Kullanıcı
  • Üyelik 20.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek -
  • Konum Adana
  • Ad Soyad B** K**
  • Mesajlar 511
  • Beğeniler 152 / 44
  • Ticaret 0, (%0)
Merhaba arkadaslar boyle bır kodum var fakat random da aynı sayı gelıyor . aynı sayı gelınce baska bır sayı atamak ıstıyorum nasıl yapabılırım? Böyle yaptım hata vermedı fakat hala aynı sayı atıyor . Hatamı göstererek açıklar mısınız ?

teşekkürler..

Random sayi = new Random();
Random yeni = new Random();
for (int i = 0; i < 6; i++)
{
cekilissayilari[i] = sayi.Next(1, 50);
if (cekilissayilari.Contains(cekilissayilari[i]))
{
cekilissayilari[i] = yeni.Next(1, 50);
}
listBox2.Items.Add(cekilissayilari[i].ToString());
}
buttonCekilisyap.Enabled = false;
buttonSonucuGoster.Enabled = true;
 

 

wmaraci
reklam

yaramazca yaramazca WM Aracı Kullanıcı
  • Üyelik 14.02.2014
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım Geliştirme Uzmanı
  • Konum Çanakkale
  • Ad Soyad S** Y**
  • Mesajlar 204
  • Beğeniler 13 / 32
  • Ticaret 44, (%100)
random sayıyı çektiğinde çektiğin sayıları attığın array e bak. Eğer random sayı varsa ekleme ve i-- yapıp tekrar döndür.
 

 

PorFavorDama PorFavorDama WM Aracı Kullanıcı
  • Üyelik 20.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek -
  • Konum Adana
  • Ad Soyad B** K**
  • Mesajlar 511
  • Beğeniler 152 / 44
  • Ticaret 0, (%0)

yaramazca adlı üyeden alıntı

random sayıyı çektiğinde çektiğin sayıları attığın array e bak. Eğer random sayı varsa ekleme ve i-- yapıp tekrar döndür.


hocam şöyle yaptım bayagıda denedım hıc aynı sayı atadıgını gormedım bu sekilde de doğru mudur bakar mısınız ?
Random sayi = new Random();
for (int i = 0; i < 6; i++)
{
int randomyeni = sayi.Next(1, 50);
if (cekilissayilari.Contains(randomyeni))
{
int random2 = sayi.Next(1, 50);
cekilissayilari[i] = random2;
listBox2.Items.Add(cekilissayilari[i].ToString());
}
else
{
cekilissayilari[i] = randomyeni;
//cekilissayilari[i] = sayi.Next(1, 50);
listBox2.Items.Add(cekilissayilari[i].ToString());
}
}


Teşekkür ederim.
 

 

yaramazca yaramazca WM Aracı Kullanıcı
  • Üyelik 14.02.2014
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım Geliştirme Uzmanı
  • Konum Çanakkale
  • Ad Soyad S** Y**
  • Mesajlar 204
  • Beğeniler 13 / 32
  • Ticaret 44, (%100)

PorFavorDama adlı üyeden alıntı

hocam şöyle yaptım bayagıda denedım hıc aynı sayı atadıgını gormedım bu sekilde de doğru mudur bakar mısınız ?
Random sayi = new Random();
for (int i = 0; i < 6; i++)
{
int randomyeni = sayi.Next(1, 50);
if (cekilissayilari.Contains(randomyeni))
{
int random2 = sayi.Next(1, 50);
cekilissayilari[i] = random2;
listBox2.Items.Add(cekilissayilari[i].ToString());
}
else
{
cekilissayilari[i] = randomyeni;
//cekilissayilari[i] = sayi.Next(1, 50);
listBox2.Items.Add(cekilissayilari[i].ToString());
}
}


Teşekkür ederim.


yine aynı gelebilir. şöyle dene.


$sayilar = array();
for($i=0;$i<=6;$i++) {
$sayi = rand(0,50);
if(in_array($sayi,$sayilar) {
$i--;
} else {
$sayilar[] = $sayi;
}
PorFavorDama

kişi bu mesajı beğendi.

wmaraci
wmaraci

PorFavorDama PorFavorDama WM Aracı Kullanıcı
  • Üyelik 20.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek -
  • Konum Adana
  • Ad Soyad B** K**
  • Mesajlar 511
  • Beğeniler 152 / 44
  • Ticaret 0, (%0)

yaramazca adlı üyeden alıntı

yine aynı gelebilir. şöyle dene.


$sayilar = array();
for($i=0;$i<=6;$i++) {
$sayi = rand(0,50);
if(in_array($sayi,$sayilar) {
$i--;
} else {
$sayilar[] = $sayi;
}


c# yalnız hocam bu :D Benim gösterdiğim kodu bayağı denedım suana kadar hıc aynı atamadı ama sızınkınıde deneyecegım hocam :) Teşekkürler.
 

 

yaramazca yaramazca WM Aracı Kullanıcı
  • Üyelik 14.02.2014
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım Geliştirme Uzmanı
  • Konum Çanakkale
  • Ad Soyad S** Y**
  • Mesajlar 204
  • Beğeniler 13 / 32
  • Ticaret 44, (%100)
sen onda sayı var ise yeni sayı uret ve ekle demişsin. yeni ürettiği sayı da aynı olursa.

Skalayi daralt dene bakalım. Yada daralt 1...6 yap mesela.
PorFavorDama

kişi bu mesajı beğendi.

PorFavorDama PorFavorDama WM Aracı Kullanıcı
  • Üyelik 20.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek -
  • Konum Adana
  • Ad Soyad B** K**
  • Mesajlar 511
  • Beğeniler 152 / 44
  • Ticaret 0, (%0)

yaramazca adlı üyeden alıntı

sen onda sayı var ise yeni sayı uret ve ekle demişsin. yeni ürettiği sayı da aynı olursa.

Skalayi daralt dene bakalım. Yada daralt 1...6 yap mesela.


Haklısınız hocam 1-10 yapıp denedım yıne aynı sayıları atadıgı oldu bunu duzeltmelıyım sımdı.
Ek Olarak:
Random sayi = new Random();
for (int i = 0; i < 6; i++)
{
int randomyeni = sayi.Next(1, 10);
if (cekilissayilari.Contains(randomyeni))
{
i--;
}
else
{
cekilissayilari[i] = randomyeni;
//cekilissayilari[i] = sayi.Next(1, 50);
listBox2.Items.Add(cekilissayilari[i].ToString());
}
}


Söylediğiniz gibi yaptım hocam suan sıkıntı gormedım hala denıyorum . Çok mantıklı bır fıkırmıs bu :) Çok tesekkur ederım bayagıdır ugrasıyordum.
 

 

yaramazca yaramazca WM Aracı Kullanıcı
  • Üyelik 14.02.2014
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım Geliştirme Uzmanı
  • Konum Çanakkale
  • Ad Soyad S** Y**
  • Mesajlar 204
  • Beğeniler 13 / 32
  • Ticaret 44, (%100)
oki o zamna. güle güle kullan. :)
 

 

PorFavorDama PorFavorDama WM Aracı Kullanıcı
  • Üyelik 20.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek -
  • Konum Adana
  • Ad Soyad B** K**
  • Mesajlar 511
  • Beğeniler 152 / 44
  • Ticaret 0, (%0)

yaramazca adlı üyeden alıntı

oki o zamna. güle güle kullan. :)


Teşekkür ederim :)
 

 

wmaraci
wmaraci
Konuyu toplam 2 kişi okuyor. (0 kullanıcı ve 2 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al