Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

java random


riglous

Öne çıkan mesajlar

import java.util.*;

public class asd{
public static void main(String[] args){
Random randomGenerator;
for(int i=0; i<10; i++){
randomGenerator=new Random();
System.out.println(randomGenerator.nextInt(100));
}
}
}


Yukarida gormus oldugunuz kodla random 10 sayi yaratilmasi gerekiyor degil mi? Ben mi yanlis yapiyorum bi yerde? 10 rakam da ayni cikiyor... Gozumden kacan bi sey mi var, ya da herhangi bi bug'dan haberdar olan var mi?
Link to comment
Sosyal ağlarda paylaş

Windows altında Eclipse ile denedim düzgün çalıştı. Sorunu çözeceğini düşünmüyorum, ama her iterasyonda yeni Random nesnesi üretmek yerine direkt olarak nextInt metodunu çalıştırabilirsin. Şöyle:

Random randomGenerator = new Random();
for(int i=0; i < 10; i++) {
System.out.println(randomGenerator.nextInt(100));
}


O da olmazsa, nedenini bulamazsan java.Math içindeki random metodunu da kullabilirsin.

for(int i = 0; i < 10; i++) {
System.out.println((int)(Math.random() * 100));
}
Link to comment
Sosyal ağlarda paylaş

Ne yazik ki, o kadar basit degil. Yani denedim onu da...
Hatta seed koyup da denedim, her seferinde farkli seed vererek de. Bu sefer de 192 bit'lik string yaratirken 98%'i 0'dan olusuyor, sadece 2%'lik bi kesim 1 oluyor ki ben genelde 50% dagilim istiyorum. Onu gectim, listeden string secerken bile random ayni rakam cikiyo, deliricem yakinda

EDIT: lol.. Bilgisayarin hizli calismasindan dolayi yaratilan yaratilan random generator'lar ayni seed'e sahip oluyo. Saka gibi :)
Link to comment
Sosyal ağlarda paylaş

.net için konuşuyorum ama muhtemelen java'da da sebep bu;

random class'ının default seed'i datetimedır. dolayısıyla kısa sürede ard arda, ayrı ayrı random class'ı yaratırsak aynı zaman diliminde olduğu için seed'leri aynı olur. bu da hep aynı random sayıya ulaşmamızı sağlar. bu yüzden çözüm, mirage'ın dediği gibi tek bir random objesinden sayıları üretmek olacaktır.

en nihayetinde random, gerçekten rastgele üretmiyor sayıları maalesef.
Link to comment
Sosyal ağlarda paylaş

random olayı zamanında kafayı sıyırtmıştı ya delphide. kendi kafama göre zamanı alıp çarpıp bölüyodum falan. (yoksa sürekli aynı sayıları veriyordu arka arkaya) bunu mancınık diye bi kart oyununda kullanmıştım yani kartların gelme olasılığı falan aynı olmalı mantıken ama çarpmalar bölmeler sonucu farkettim ki asal sayılar az geliyor mesela :)
gerçi ben niye anlatıyorum bunları, sana bir faydası olmayacak.
Link to comment
Sosyal ağlarda paylaş

Math.random() ile tekrar tekrar denedim. Pek bi faydasi olmadi.

@Ract, ne yazik ki olmuyor o soylediginiz. Yani ilk basta oyle yapmistim, haklisin.Soyle bi durum var ki ayni kod 2 gun once takir takir calisiyodu. Baska yerde de calisti, zaman zaman calismadigi oldu. Yani bilgisayardan bilgisayara degisen bi durum. Kod'dan cok bilgisayarla alakasini cozebilen var midir ki?

sleep, wait... bunun en "abuzer" yolu araya for-loop yerlestirmek ki onu da denedim cozmedi.

NOT: Ya bilgisayar hizli olsa icim yanmayacak, AMD1.2 ile deniyorum o bile fayda etmiyo,.
Link to comment
Sosyal ağlarda paylaş

Random nesnesinin parametresiz constructor'unu kullandığın zaman Ractamainus'un dediği gibi o anki zaman kullanıyordur üretilirken.

Ama Random nesnesini ürettikten sonra next metodlarıyla aldığın rakamlar deterministic diyor API'de. Aynı aynı seed ile 10 tane Random nesnesi üretsen, hep aynı sonuçları verecek.

Dolayısıyla tek bir Random nesnesinin next metoduyla devamlı aynı sayıları vermesi normal bir durum değil. Biraz abes kaçacak ama, değiştirdikten sonra tekrar compile etmeyi unutmuş falan olabilir misin?

Bu kod çalışmıyor mu yani?


Random randomGenerator = new Random();
for(int i=0; i < 10; i++) {
System.out.println(randomGenerator.nextInt(100));
}


Link to comment
Sosyal ağlarda paylaş


Hani insanlar durmadan gulerler gerekli gereksiz, sinirleri bozulmustur. Sonra siritirlar, bu basarmanin siritisidir... Ama sonra gereksiz oldugunu farkederler bunun da. Aslinda basarilmis herhangi bi sey yoktur. Gereksiz bi mutluluk halidir bu; kimisi nirvanaya ermis der, kimisi kecileri kacirmis.

Oldugun yerde kikirdayip olanlarin ne kadar enteresan oldugunu animsar insan, sanki mantar yemis de her sey ilginc gozukur gozune. Pi'deki gibi basini matkapla deliyolardir bi taraftan ama obur taraftan da istemsiz bi gulus devam eder suratinda. Aslinda aci mi cekiyodur yoksa mutlu mudur pek belli degildir o noktada.

Iste tam bu sirada sacmaladiginin farkina varir insan ve salak salak yazmayi kesip sadede gelir.




Arkadaslar, eski haliyle kod yeniden calisti. Burdan Sun Microsystems'a en icten kufurlerimi yolluyor, yardim etmeye calisan herkesi de cani gonulden kucakliyorum.

Siz siz olun, tez yazmayin. Siz siz olun, tezinizde genetic algorithm kullanmayin. Siz siz olun ga'i java ile yazmaya kalkismayin. Esen kalin efendim, iyi uykular.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...