0Pricing
Java Academy · Ders

Rastgele Aralıklar ve Karıştırma

Sınırlandırılmış rastgele değerler ve koleksiyonları karıştırma

Rastgele Aralıklar ve Karıştırma, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.

Aralıklar ve Karıştırma

Gerçek programlar nadiren 0'dan bound-1'e kadar olan değerleri ister. Bu derste isteğe bağlı aralıklar, koleksiyonları rastgele karıştırma ve rastgele öğeler seçme ele alınır.

Özel Aralık Formülü

min ile max arasında, uç değerler dahil bir int üretmek için min + rng.nextInt(max - min + 1) kullanın.

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random rng = new Random();
        int min = 10, max = 20;
        int value = min + rng.nextInt(max - min + 1);
        System.out.println("10 to 20: " + value);
    }
}

Başlangıç ve Sınırla nextInt

Modern Java, doğrudan nextInt(origin, bound) çağrısı yapmanıza olanak tanır: origin dahil, bound hariçtir. Bu, elle yazılan formülü gereksiz kılar.

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random rng = new Random();
        int value = rng.nextInt(10, 21);
        System.out.println("10 to 20: " + value);
    }
}

Bir Aralıkta Rastgele Double Değerleri

lo ile hi arasında bir double elde etmek için lo + rng.nextDouble() * (hi - lo) kullanın.

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random rng = new Random();
        double lo = 5.0, hi = 7.5;
        double value = lo + rng.nextDouble() * (hi - lo);
        System.out.println(value);
    }
}

Bir Listeyi Karıştırma

Collections.shuffle(list), bir List içindeki öğeleri yerinde rastgele yeniden sıralar. Kart desteleri ve rastgeleleştirilmiş sınavlar için çok kullanışlıdır.

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> deck = new ArrayList<>(List.of(1, 2, 3, 4, 5));
        Collections.shuffle(deck);
        System.out.println(deck);
    }
}

Tekrarlanabilir Karıştırmalar

Belirli bir karıştırma elde etmek için ikinci bağımsız değişken olarak tohum verilmiş bir Random aktarın: Collections.shuffle(list, new Random(seed)).

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class Main {
    public static void main(String[] args) {
        List<Integer> deck = new ArrayList<>(List.of(1, 2, 3, 4, 5));
        Collections.shuffle(deck, new Random(99));
        System.out.println(deck);
    }
}

Karıştırma Değiştirilebilir Bir Liste Gerektirir

List.of(...) bir değişmez liste oluşturur. Bu listeyi karıştırmak UnsupportedOperationException fırlatır. Önce listeyi new ArrayList<>(...) ile sarın.

Rastgele Bir Öğe Seçme

Rastgele bir dizin üreterek ve get kullanarak rastgele bir öğe seçin.

import java.util.List;
import java.util.Random;

public class Main {
    public static void main(String[] args) {
        List<String> colors = List.of("red", "green", "blue");
        Random rng = new Random();
        String pick = colors.get(rng.nextInt(colors.size()));
        System.out.println("Chosen: " + pick);
    }
}

Bir Diziyi Karıştırma

Dizilerde yerleşik bir karıştırma işlemi yoktur. Klasik yaklaşım Fisher-Yates algoritmasıdır: her öğeyi kendisinden önceki veya kendisine eşit rastgele bir dizindeki öğeyle yer değiştirin.

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

public class Main {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};
        Random rng = new Random(3);
        for (int i = arr.length - 1; i > 0; i--) {
            int j = rng.nextInt(i + 1);
            int tmp = arr[i];
            arr[i] = arr[j];
            arr[j] = tmp;
        }
        System.out.println(Arrays.toString(arr));
    }
}

Rastgele Örnekleme

Birden fazla farklı öğe seçmek için bir kopyayı karıştırıp ilk birkaç öğeyi alın veya daha önce seçilmiş dizinleri izlemek üzere bir Set kullanın. Küçük listelerde karıştırıp dilim almak en basit yöntemdir.

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> pool = new ArrayList<>(List.of(1, 2, 3, 4, 5, 6, 7, 8));
        Collections.shuffle(pool);
        List<Integer> sample = pool.subList(0, 3);
        System.out.println("Sample: " + sample);
    }
}

Uygulamaya Yönelik Notlar

Tamamen rastgele bir yeniden sıralamaya ihtiyacınız olduğunda karıştırma kullanın; sınırlandırılmış değerlere ihtiyacınız olduğunda özel aralık formülünü kullanın. Üst sınırın dahil olması gerektiğinde bir farkını her zaman unutmayın.

Kısa Kontrol

Aralıklar ve karıştırma konusundaki anlayışınızı sınayın.

Özet

Aralıkları ve karıştırmayı öğrendiniz.

  • Aralıklar için min + nextInt(max - min + 1) veya nextInt(origin, bound) kullanın.
  • Collections.shuffle değiştirilebilir bir listeyi yerinde yeniden sıralar.
  • Yeniden üretilebilirlik için karıştırmaya tohum verin.
  • Rastgele öğeleri rastgele bir dizin aracılığıyla seçin.

Sıkça Sorulan Sorular

“Rastgele Aralıklar ve Karıştırma” dersi ücretsiz mi?

Evet — “Rastgele Aralıklar ve Karıştırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.

“Rastgele Aralıklar ve Karıştırma” dersinde ne öğreneceğim?

Sınırlandırılmış rastgele değerler ve koleksiyonları karıştırma Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Rastgele Aralıklar ve Karıştırma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Math Sınıfı
  2. Rastgele Sayılar Üretme
  3. Rastgele Aralıklar ve Karıştırma
  4. Matematiksel Yuvarlama ve Sınırlar
← Java Academy Sayfasına Dön