Java ile dizi içindeki sayıları 6 lı olarak Random sıralatma?

Başlatan lsari86, 08 Kasım 2012 - 15:40:05

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

lsari86

Herkese merhaba,
Arkadaşlar kendi işimde kullanmak üzere Java ile ilgili küçük bir random sayı uygulaması yapmaya çalışıyorum.
Ancak Java ve programlamada oldukca yeni olduğum için işin içinden çıkamadım.
Amacım aşağıdaki kod da görüldüğü üzere tanımadığım dizi içindeki sayıları Random olarak (0,12,4,9,2,13) şeklinde 6 lı Per ler halinde sıralatmak istiyorum.
BEnim için öenmli olan dizi içinde tanımladığım sayıların tamamen rast gele bir şekilde 6 lı perler olarak sıralanması.
Örnek vermek vermek gerekirse; benim diziyi bir kavanos gibi düşünürsek bu kavanosun içinde benim belirlediğim rakamlar var.
Ben kavanosu çalkalayıp elimi daldırıp 6 sayı/ rakam cekeceğim.
Bunları tekrar kavanosa atıp kavanosu tekara karıştırıp yeniden altı sayı daha çekeceğim ve yeniden elimdeki sayıları aynı kavanosa atıp kavanosu karıştıracağım.
Bu işlem tekrar tekrar kullanılacak .
Bu tip biR işlem için nasıl bir şey yapmam lazım.
Bana yardımcı olabilirseniz çok mutlu olurum.
keza ben sadece aşağıdaki örneği yapabildim.
Ama istediğim elbetteki bu değil.
KOlaylıkar



import java.util.Random;

public class Sayisal {
public static void main(String[] args) {
int dizi[] = { 1, 3, 5, 7, 9, 2 };
Random rnd = new Random();
int sayi = rnd.nextInt(dizi.length);

for (int i = 0; i < dizi.length; i++) {
System.out.println("sayi :" + sayi);
System.out.println("i :" + i);
}

}
}

 


ct

Dizi veya vektörlerin indisleriyle bu işi yapabilirsiniz. Aşağıda 6 elemanlı ve ilk verilen diziden sıraları değiştirilerek oluşturulan diziyi elde eden programı ekledim. Sanırım öyle birşeyden bahsediyordunuz?

int dizi[] = { 1, 3, 5, 7, 9, 2 };

System.out.println("Yeni Dizi = ");


for (int i = 0; i < 6; i++) {

Random rnd = new Random();
int sayi = rnd.nextInt(dizi.length);

int yeniDizi[] = dizi;
yeniDizi[i] = dizi[sayi];

//System.out.println("sayi :" + sayi);
//System.out.println("i :" + i);
System.out.print(yeniDizi[i] + " ");
}



WhiteScars

Bu işini görür heralde


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;


public class Dizi {
public static void main(String[] args) {
Integer dizi[] = { 1, 3, 5, 7, 9, 2, 8, 12, 99 };
ArrayList<Integer> kavanoz = new ArrayList<>(Arrays.asList(dizi));
ArrayList<Integer> secilenler = new ArrayList<>();

Random rnd = new Random(System.currentTimeMillis());

for (int i = 0; i < 6; i++) {
int kura = rnd.nextInt(kavanoz.size());
secilenler.add(kavanoz.get(kura));
kavanoz.remove(kura);
}

for (Integer per : secilenler) {
System.out.print(per + " ");
}

// Tekrar kavanozu kullanmak için secilenleri içine at.
kavanoz.addAll(secilenler);
}
İnsanoğluna bırakabileceğiniz en güzel miras tecrübelerinizdir.