Java'da Rasgele Sayılar Oluşturma

Bir dizi oluşturma rastgele sayılar zaman zaman ortaya çıkan ortak görevlerden biridir. İçinde Java, sadece java.util kullanılarak elde edilebilir. Rastgele sınıf.

Herhangi bir API kullanımında olduğu gibi ilk adım sınıf, import ifadesini program sınıfınızın başlangıcından önce koymaktır:

Ardından, bir Rastgele nesne oluşturun:

Rastgele nesne size basit bir rastgele sayı üreteci sağlar. Nesnenin yöntemleri rastgele sayılar seçme yeteneği verir. Örneğin, nextInt () ve nextLong () yöntemleri, int ve uzun veri türlerinin sırasıyla değerler (negatif ve pozitif) aralığında bir sayı döndürür:

Döndürülen sayılar rastgele seçilen int ve uzun değerler olacaktır:

Belirli Bir Aralıktan Rastgele Sayılar Seçme

Normalde üretilecek rastgele sayıların belirli bir aralıktan (ör., 1 ile 40 arasında) olması gerekir. Bu amaçla nextInt () yöntemi bir int parametresini de kabul edebilir. Sayı aralığının üst sınırını gösterir. Ancak, üst limit numarası seçilebilecek sayılardan biri olarak dahil edilmemiştir. Bu kafa karıştırıcı gelebilir, ancak nextInt () yöntemi sıfırdan yukarı doğru çalışır. Örneğin:

instagram viewer

yalnızca 0 ile 39 arasında rastgele bir sayı seçer. 1 ile başlayan bir aralıktan seçim yapmak için nextInt () yönteminin sonucuna 1 ekleyin. Örneğin, 1 ile 40 arasında bir sayı seçmek için sonuca kapsamlı olarak bir sayı ekleyin:

Aralık birden fazla sayıdan başlıyorsa aşağıdakileri yapmanız gerekir:

  • üst sınır numarasından başlangıç ​​numarasını ve ardından bir sayı ekleyin.
  • başlangıç ​​numarasını nextInt () yönteminin sonucuna ekleyin.

Örneğin, 5 ile 35 arasında bir sayı seçmek için, üst sınır numarası 35-5 + 1 = 31 olacaktır ve sonuca 5 eklenmesi gerekir:

Rastgele Sınıf Ne Kadar Rastgele?

Şunu belirtmeliyim ki, Random sınıfı deterministik bir şekilde rastgele sayılar üretir. Rasgeleliği üreten algoritma, tohum adı verilen bir sayıya dayanır. Tohum numarası biliniyorsa, algoritmadan üretilecek sayıları bulmak mümkündür. Bunu kanıtlamak için, Neil Armstrong ilk olarak tohum numaram olarak Ay'a bastı (20 Temmuz 1969):

Bu kodu kim çalıştırırsa çalıştırsın, üretilen "rastgele" sayılar dizisi şöyle olacaktır:

Varsayılan olarak kullanılan tohum numarası:

1 Ocak 1970 tarihinden bu yana milisaniye cinsinden geçerli saattir. Normalde bu çoğu amaç için yeterince rasgele sayılar üretecektir. Ancak, aynı milisaniye içinde oluşturulan iki rasgele sayı üretecinin aynı rasgele sayı üreteceğini unutmayın.

Ayrıca, rastgele rasgele sayı üretecine (ör. Bir kumar programı) sahip olması gereken herhangi bir uygulama için Random sınıfını kullanırken de dikkatli olun. Uygulamanın çalıştığı zamana göre tohum numarasını tahmin etmek mümkün olabilir. Genellikle, rasgele sayıların kesinlikle kritik olduğu uygulamalar için, Random nesnesine bir alternatif bulmak en iyisidir. Belirli bir rastgele öğenin (örneğin, bir masa oyunu için zar) olması gereken çoğu uygulama için, o zaman iyi çalışır.