Arama butonu
Bu konudaki kullanıcılar: 1 misafir
51
Cevap
2120
Tıklama
1
Öne Çıkarma
Cevap: C dilinde birbirinden farklı random sayılar atama (4. sayfa)
S
3 yıl
Yüzbaşı

quote:

Orijinalden alıntı: EmuDev

Ben de hobi olarak retro emulatör geliştirmiştim bir ara. Makinanın ses üreteci çipi noise üretmek için random sayı oluşturması gerekiyordu. Tabi o ilkel cihazlarda şimdiki gibi kompleks trng donanımları olmadığı için basitçe iki biti xor yapıp msb'e kopyalıyordu. Bir kere de sağa iteleyince rastgele bit elde ediliyordu. Eski sistemlerle uğraşmak çok zevkli. Belki de basit oldukları içindir. Modern mimarileri anlamaya ömür yetmez.

Alıntıları Göster
Eski Zilog Z80 ve MOS6510 (Commodore) ROM'daki bir BASIC interpreter ile açılırdı biliyorsunuzdur.
C64 ten emin değilim ama Zilog Z80 tabanlı Akstrad CPC,.her power-up ta random() fonksiyonuna aynı sayıları döndürürdü.

Tutarlı bir şekilde dijital işlemler yapan bir makinede true random number üretmek imkansızdır diye o nedenle yazmıştım.
Eski PC'ledeki Gwbasic ve Qbasic de aynı şekilde aynı sayı dizisini üretiyordu yanlış hatırlamıyorsam.
Bunlar sabit bir diziden değil, bir seed number',ın shift/xor gibi işlemlerden geçirilmesi ile oluşturuyorlardı sayıları.
Oyunlarda her açılışta aynı anlarda aynı şekilde canavarlar gelirdi o yüzden.
Ama örneğin Amstrad cpc'de "randomize timer" diye bir rom rutini vardı. Yaptığı iş random number generator algoritmasına seed olarak, bilgisayar açıldığı andan itibaren sayan bir timer'ın değerini vermekti. Böylece daha rastgele gibi gözüken sayılar üretiliyordu.
Sonuçta programın çalışması için arada bir insan faktörü var. Power-on dan itibaren ilk random üretimi için geçen süre değişiyordu



< Bu ileti mobil sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.