folder Tahribat.com Forumları
linefolder Java
linefolder Math.Random() Fonksiyonunda Her Sayıyı Bir Defa Atamak?



Math.Random() Fonksiyonunda Her Sayıyı Bir Defa Atamak?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek

    for(int x=0; x<15; x++){

    int i = (int) (Math.random()*15);

    }

     

    işleminde i için her seferinde farklı ama rastgele geğer atansın istiyorum.. yani döngü ilk döndüğünde 2 veriliyorsa kalan 14 döngüde 2 değeri tekrar verilmesin istiyorum ? bunu yapabilir miyiz?


    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wking
    wking's avatar
    Kayıt Tarihi: 28/Mart/2010
    Erkek

    Herhangi bir kontrol olmadan yapamazsın.

    Çıkan sayıları elinde tutup, gelen her yeni sayıya bakmalısın, yeni sayı çıkan sayılarda var mı diye.

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek

     

    package genetikalgoritma;
    
    
    public class GenHavuzu {
       
        public static int randomsayi(){
            int i = (int) (Math.random()*(Math.random()*15));
            return i;
        }
       
      
        public static int [] sayi = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
        GenHavuzu nesne = new GenHavuzu();
        public static char rastsalharf(){
            char [] dizi = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O'};
          
            int i= randomsayi();
            
             if(sayi[i]==1){
                 GenHavuzu.sayi[i]++;
                 return dizi[i];
             }
             else {
                 return rastsalharf();
             }
            
        }
          
           
       
       
    
       
        public static void main(String [] args){
           
          char [][] populasyon = new char [100][15];
           
            for(int i=0; i<100; i++){
                for(int j=0; j<15; j++){
                    populasyon[i][j] = rastsalharf();
                }
            }
           
           for(int i=0; i<100; i++){
               System.out.println();
                for(int j=0; j<15; j++){
                    System.out.print(populasyon[i][j]);
                }
        }
          
        }
    }
    
    

    A dan O ya kadar olan harfleri her seferinde rastgele sıralanacak şekilde populasyon matrisinde tutmak istiyorum.. fakat aynı harf 2 3 kez kullanılıyor bunun
    bir kere kullanılsın istiyorum

     


    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rbtx
    rbtx's avatar
    Kayıt Tarihi: 25/Haziran/2002
    Erkek

            Random rand = new Random();
            List<Integer> randNumb = new LinkedList<Integer>();
           
            for(int i = 0; i < 1000; i++)
            {
                int randomNumb = rand.nextInt(1000);
                if(!randNumb.contains(randomNumb) && randNumb.size() < 15)
                {
                    randNumb.add(randomNumb);
                }
                else
                {
                    break;
                }
            }

     

    ayni yontemi karakterlere uygulayarak sorunu cozebilirsin.

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ThundeR
    ThundeR's avatar
    Kayıt Tarihi: 08/Mart/2007
    Erkek

    harfleri bir koleksiyona at ve koleksiyonun ilk countunu bir değişkene atıp, countu kadar bir döngü aç

    her seferinde koleksiyonun countu kadar random eleman seçtirip onu ekrana yazdır ve koleksiyondan çıkar

    böylece aynı harf iki kez görünmeyecek ve gereksiz yere kontrol yapmak zorunda kalmayacaksın..

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    seretide
    seretide's avatar
    Kayıt Tarihi: 14/Haziran/2010
    Erkek

    Mesela 15 e kadar üreticeksen 15 elemanlı bi dizi aç dizinin her değerini kendi index değerine ata.Sonrada her elemanı dizinin rastgele başka bi elemanıyla yer değiştir.Sonrada dizinin elemanlarını sırayla kullanırsın aynı eleman tekrar gelmeden random sayı üretmiş olursun.

     


    Saçma
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek

    seretide bunu yazdı:
    -----------------------------

    Mesela 15 e kadar üreticeksen 15 elemanlı bi dizi aç dizinin her değerini kendi index değerine ata.Sonrada her elemanı dizinin rastgele başka bi elemanıyla yer değiştir.Sonrada dizinin elemanlarını sırayla kullanırsın aynı eleman tekrar gelmeden random sayı üretmiş olursun.

     


    -----------------------------

    tam olarak nasıl yapacam anlamadım :s


    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    seretide
    seretide's avatar
    Kayıt Tarihi: 14/Haziran/2010
    Erkek

    sLeymN bunu yazdı:
    -----------------------------

    seretide bunu yazdı:
    -----------------------------

    Mesela 15 e kadar üreticeksen 15 elemanlı bi dizi aç dizinin her değerini kendi index değerine ata.Sonrada her elemanı dizinin rastgele başka bi elemanıyla yer değiştir.Sonrada dizinin elemanlarını sırayla kullanırsın aynı eleman tekrar gelmeden random sayı üretmiş olursun.

     


    -----------------------------

     

    tam olarak nasıl yapacam anlamadım :s


    -----------------------------

     

    dizinin her elemanında kendi index değeri olucak 1. elemanında 1 2 de 2 ...

    sonra her elemanı dizinin rastgele başka elemanıyla değiştiriceksin kodunu yazıyorum

     

    for(i=1;i<=N;i++){

       dizi[i]=i;

    }

     

    for(i=1;i<=N;i++){

         swap(dizi[i],dizi[Math.random()*N);

    }

     

    dizinin içindeki değerler dizide rastgele olarak yerleşicek sonrada sırayla elemanları kullanırsın

     

     


    Saçma
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Yukardakilere ek olarak random değerleri Set'te tutabilirsin.

    http://www.cs.sjsu.edu/~pearce/modules/lectures/j2se/jcf/jcf_files/image002.jpg

    Java Collections Framework'e bakarsan Set'in özellikleri matematikteki Set ile benzer. Yani aynı elemanı istediğin kadar eklemeye çalış eklemez, yalnızca bir tane olur.


    Sen hiç kaval çaldın mı?
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    hocam o zaman cikansayıları bir arraye atıp, sonra arrayde aratıp, yoksa yazdıracak birşey yapabilirsin.

    Hea performanslı mı olur yada daha kolayı varmı bilmem (kesin vardır).

     

Toplam Hit: 2716 Toplam Mesaj: 10