Tekrarsız rastgele sayılar

Sorunun formülasyonu

Belirli bir değer aralığında tekrarsız bir tamsayı rasgele sayı kümesi oluşturmamız gerektiğini varsayalım. Hareket halindeyken örnekler:

  • ürünler veya kullanıcılar için benzersiz rastgele kodlar oluşturma
  • kişileri görevlere atama (her biri listeden rastgele)
  • arama sorgusundaki kelimelerin permütasyonu (merhaba seo-shnikam)
  • loto oynamak vb.

Yöntem 1. Basit

Başlangıç ​​olarak, basit bir seçenek düşünelim: 10'den 1'a kadar rastgele bir 10 tam sayı kümesi almamız gerekiyor. Excel'de yerleşik işlevi kullanma VAKA ARASINDA (KENAR ARASI) benzersizliği garanti edilmez. Bir sayfa hücresine girer ve 10 hücreye kopyalarsanız, tekrarlar kolayca gerçekleşebilir:

Tekrarsız rastgele sayılar

Bu nedenle, diğer yoldan gideceğiz.

Excel'in tüm sürümlerinin bir işlevi vardır RANK (RANG), sıralamaya veya başka bir deyişle bir kümedeki bir sayının en üst konumunu belirlemeye yöneliktir. Listedeki en büyük sayının sıralaması=1, en üstteki ikincinin sıralaması=2, vb.

A2 hücresine fonksiyonu girelim SLCHIS (RAND) argümanlar olmadan ve formülü 10 hücreye kopyalayın. Bu fonksiyon bize 10'dan 0'e kadar 1 rastgele kesirli sayı dizisi üretecektir:

Tekrarsız rastgele sayılar

Bir sonraki sütunda işlevi tanıtıyoruz RANKalınan her rastgele sayı için sıralamadaki konumu belirlemek için:

Tekrarsız rastgele sayılar

B sütununda istediğimizi alırız - 1'den 10'a kadar herhangi bir sayıda tekrarlanmayan rastgele tamsayı.

Tamamen teorik olarak, bir durum ortaya çıkabilir SLCHIS bize A sütununda iki özdeş rastgele sayı verecek, sıraları eşleşecek ve B sütununda bir tekrar alacağız. Ancak, doğruluğun 15 ondalık basamak olduğu gerçeği göz önüne alındığında, böyle bir senaryonun olasılığı son derece küçüktür.

Yöntem 2. Karmaşık

Bu yöntem biraz daha karmaşıktır, ancak yalnızca bir dizi formülü kullanır. Diyelim ki bir sayfa üzerinde 9 ile 1 arasında 50 tekrar etmeyen rastgele tam sayı listesi oluşturmamız gerekiyor.

A2 hücresine aşağıdaki formülü girin, sonuna tıklayın Ctrl + Üst Karakter + Enter (bir dizi formülü olarak girmek için!) ve formülü istediğiniz hücre sayısına kopyalayın:

Tekrarsız rastgele sayılar

Yöntem 3. Makro

Ve elbette, Visual Basic'te programlama kullanarak sorunu çözebilirsiniz. Rastgele örneklemeyle ilgili eski makalelerden birinde, belirli bir aralıktan gerekli sayıda rastgele yinelenmeyen sayı üreten Lotto dizisi makro işlevinden zaten söz etmiştim.

  • Bir aralıktaki benzersiz değerlerin sayısı nasıl sayılır?
  • Listeden rastgele eleman seçimi

Yorum bırak