Excel 2007 ve Excel 2003'teki S_SAYI_ÜRET işlevinin açıklaması

Makale çevirileri Makale çevirileri
Makale numarası: 828795 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

™zet

Bu makalede, Microsoft Office Excel 2007 ve Microsoft Office Excel 2003'teki rasgele sayı üretme işlevi olan S_SAYI_ÜRET işlevinin değiştirilen algoritması anlatılmaktadır.

Daha fazla bilgi

Excel'in önceki sürümlerindeki S_SAYI_ÜRET işlevi, standart testlerdeki performansı yeterli olmayan sözde bir rasgele sayı üretme algoritması kullanıyordu. Bu değişiklik büyük bir olasılıkla S_SAYI_ÜRET işlevine bir milyon veya daha fazla sayıda çağrı yapması gereken kullanıcıları etkileyecek ve diğer kullanıcılar için önemli bir değişiklik olmayacaktır, ancak burada açıklanan sözde rasgele sayı üretme algoritması ilk olarak Excel 2003'te kullanılmıştı. Aynı standart testler uygulanmıştır.

Uygulanan testin adı Diehard'dır (bkz: not 1). Excel 2003'te kullanılan algoritma B.A. Wichman ve I.D. Hill tarafından geliştirilmiştir (bkz: not 2 ve 3). Bu rasgele sayı üretici aynı zamanda ABD Sağlık Bakanlığı Teftiş Kurulu tarafından sağlanan RAT-STATS yazılım paketinde kullanılmıştır. DIEHARD testlerini ve National Institute of Standards and Technology (Ulusal Standartlar ve Teknoloji Enstitüsü ya da kısaca NIST, önceden National Bureau of Standards olarak biliniyordu) tarafından geliştirilen diğer testleri geçtiği Rotz et al tarafından gösterilmiştir (bkz: not 4).

Notlar

  • Testler, Florida Eyalet Üniversitesi İstatistik Bölümü'nde görevli olan Profesör George Marsaglia tarafından geliştirilmiştir ve aşağıdaki Web sitesinde bulunabilir:
    http://www.csis.hku.hk/~diehard
  • Wichman, B.A. ve I.D. Hill, AS 183 Algoritması: Verimli ve Taşınabilir Bir Sözde Rasgele Sayı Üretici, Uygulamalı İstatistik, 31, 188-190, 1982.
  • Wichman, B.A. ve I.D. Hill, Rasgele Sayı Üretici Geliştirme, BYTE, sy. 127-128, Mart 1987.
  • Rotz, W. ve E. Falk, D. Wood ve J. Mulrow, İş Dünyasında Kullanılan Rasgele Sayı Üreticilerin Karşılaştırması, İstatistik Toplantıları Sunumu, Atlanta, GA, 2001.
Temel fikir, [0,1] düzeninde rasgele üç sayı alıp bunları topladığınızda, toplamın kesirli bölümünün de [0,1] düzeninde rasgele sayı olacağıdır. Özgün Wichman ve Hill makalesindeki Fortran kod listesinde yer alan önemli deyimler şunlardır:
C	IX, IY, IZ İLK GİRDİDEN ÖNCE 1 İLE 30000 ARASINDAKİ TAMSAYI DEĞERLERİNE AYARLANMALIDIR

IX = MOD(171 * IX, 30269)

IY = MOD(172 * IY, 30307)

IZ = MOD(170 * IZ, 30323)

RANDOM = AMOD(FLOAT(IX) / 30269.0 + FLOAT(IY) / 30307.0 + FLOAT(IZ) / 30323.0, 1.0)
Bu nedenle IX, IY, IZ sırasıyla 0 ile 30268, 0 ile 30306 ve 0 ile 30322 arasında tamsayılar oluşturur. Bunlar son deyimde birleştirilerek, dana önce belirtilen basit ilke oluşturulur: [0,1] düzeninde rasgele üç sayı alıp bunları topladığınızda, toplamın kesirli bölümü de [0,1] düzeninde rasgele sayı olacaktır.

S_SAYI_ÜRET işlevi sözde rasgele sayılar oluşturduğu için, yeterince uzun bir sıra oluşturulursa bu sıra sonunda kendini yinelemeye başlar. Rasgele sayılar Wichman-Hill yordamındaki gibi birleştirildiğinde, yinelemeden önce 10^13 sayıdan fazlasının oluşturulması sağlanabilir. Diehard testlerinin bazıları S_SAYI_ÜRET işlevinin önceki sürümlerinde tatmin edici sonuçlar vermemiştir, çünkü sayılar kabul edilemeyecek kadar kısa bir döngü sonunda yinelenmeye başlamıştır.

Excel'in Önceki Sürümlerindeki Sonuçlar

Excel'in önceki sürümlerinde yer alan S_SAYI_ÜRET işlevi, uzun bir rasgele sayı sırasına (bir milyon gibi) gereksinim duymayan kullanıcılar için uygundu. Uzun bir rasgele sayı sırası gerektiğinde performansı sorunlara neden olduğu için, standart testlerde rasgelelik düzeyi yeterli bulunmadı.

Excel 2003'teki Sonuçlar

Basit ve etkin bir algoritma kullanılmıştır. Yeni sayı üreticinin tüm standart testlerde yeterli rasgelelik düzeyine sahip olduğu görülmüştür.

Sonuçlar

Uzun rasgele sayı sıraları kullanmaları gereken S_SAYI_ÜRET işlevi kullanıcıları için Excel 2003'teki yeni sayı üretici çok daha uygundur. Diğer kullanıcılar Excel'in önceki sürümlerindeki S_SAYI_ÜRET işlevini kullanmaya devam edebilir.

Referanslar

S_SAYI_ÜRET işlevinde oluştuğu bildirilen bir sorun hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
834520 Excel 2003'te S_SAYI_ÜRET işlevi negatif sayılar döndürüyor (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)

Özellikler

Makale numarası: 828795 - Last Review: 22 Şubat 2008 Cuma - Gözden geçirme: 5.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
Anahtar Kelimeler: 
kbinfo kbfunctions kbfuncstat KB828795

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com