Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 135
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Çok dikkatlisiniz, teşekkürler. Bir hata yaptım, parantez koymadım ve "dürüst olmayan" işlevini kullanırdım.
Not: orijinal gönderiyi düzenledi.
Lütfen bu yapının neden banal Rand()%max'tan daha iyi olduğunu açıklayın.
PS Ne demek istediğini anlıyorum.
Peki o zaman - ya max>32767 ise? Sonuçta, işleviniz uint türündedir ve rand() gibi bir maksimum değer üretir, yani. 32767
o zaman gibi bir şey kullanmak daha iyidir
Çok dikkatlisiniz, teşekkürler. Bir hata yaptım, parantez koymadım ve "dürüst olmayan" işlevini kullanırdım.
Not: orijinal gönderiyi düzenledi.
Birisi sizin dürüst işlevinizi kullanmak isterse ve get_rand(10) yazarsa, bunun Rand()%10'dan 3276 kat daha yavaş çalışacağının farkında mısınız?
Peki o zaman - ya max>32767 ise? Sonuçta, işleviniz uint türündedir ve rand() gibi bir maksimum değer üretir, yani. 32767
o zaman gibi bir şey kullanmak daha iyidir
Ve MathRand() bir int döndürür, ya birisi ondan altı sıfırlı bir sayı beklerse? Halkın bir düzeyine güveniyorum. Burada,> 32767'yi nasıl elde edeceğinizi kendiniz biliyorsunuz.
Sadece çoğu zaman tereddüt etmeden Rand()%3 yazıyorlar, ancak mesajımı görecekler ve olasılıklarda bir kayma olacağını anlayacaklar.
Birisi sizin dürüst işlevinizi kullanmak isterse ve get_rand(10) yazarsa, bunun Rand()%10'dan 3276 kat daha yavaş çalışacağının farkında mısınız?
Evet, çok yavaş, bir milyon çağrı döngüsü için, tekrarlanan while çağrısı yaklaşık 300 kez gerçekleşecek. Programlarınız get_rand()'ın seğirdiği bir ()'den oluşuyorsa, bu kritik olacaktır, sanırım.
İşletim sistemi zamanlayıcısının sizden çok fazla CPU zamanı aldığını ve Rand() ile kıyaslanamayacak kadar yürütmeyi yavaşlattığının farkında mısınız? Madem bu kadar acelen var, biraz doza ihtiyacın var.
Ve MathRand() bir int döndürür, ya birisi ondan altı sıfırlı bir sayı beklerse? Halkın bir düzeyine güveniyorum. Burada,> 32767'yi nasıl elde edeceğinizi kendiniz biliyorsunuz.
Sadece çoğu zaman tereddüt etmeden Rand()%3 yazıyorlar, ancak mesajımı görecekler ve olasılıklarda bir kayma olacağını anlayacaklar.
Evet, çok yavaş, bir milyon çağrı döngüsü için, tekrarlanan while çağrısı yaklaşık 300 kez gerçekleşecek. Programlarınız get_rand()'ın seğirdiği bir ()'den oluşuyorsa, bu kritik olacaktır, sanırım.
İşletim sistemi zamanlayıcısının sizden çok fazla CPU zamanı aldığını ve Rand() ile kıyaslanamayacak kadar yürütmeyi yavaşlattığının farkında mısınız? Madem bu kadar acelen var, biraz doza ihtiyacın var.
Ve MathRand() bir int döndürür, ya birisi ondan altı sıfırlı bir sayı beklerse? Halkın bir düzeyine güveniyorum. Burada, > 32767'yi nasıl elde edeceğinizi kendiniz biliyorsunuz.
Sadece çoğu zaman tereddüt etmeden Rand()%3 yazıyorlar, ancak mesajımı görecekler ve olasılıklarda bir kayma olacağını anlayacaklar.
Evet, çok yavaş, bir milyon çağrı döngüsü için, tekrarlanan while çağrısı yaklaşık 300 kez gerçekleşecek. Programlarınız get_rand()'ın seğirdiği bir ()'den oluşuyorsa, bu kritik olacaktır, sanırım.
İşletim sistemi zamanlayıcısının sizden çok fazla CPU zamanı aldığını ve Rand() ile kıyaslanamayacak kadar yürütmeyi yavaşlattığının farkında mısınız? Madem bu kadar acelen var, biraz doza ihtiyacın var.
Hatalarınızı kabul etmekten korkmayın. Bunda korkunç ve aşağılayıcı bir şey yok. Hepimiz hata yaparız. Bu iyi.
"Evet - yanılmışım. Teşekkürler" demek toplum algısı açısından çok daha kolay ve kullanışlıdır. bahane üretmeye çalışmak yerine
Sonuçta, bu seçenek çok daha hızlı ve çok yönlü çalışıyor:
Ayrıca, büyük sayılar gerekmiyorsa, c ulong'u uint'e yeniden kodlarsanız hızlandırabilirsiniz (beş yerine 3 rand () olacaktır).
Hatalarınızı kabul etmekten korkmayın. Bunda korkunç ve aşağılayıcı bir şey yok. Hepimiz hata yaparız. Bu iyi.
"Evet - yanılmışım. Teşekkürler" demek toplum algısı açısından çok daha kolay ve kullanışlıdır. bahane üretmeye çalışmak yerine
Sonuçta, bu seçenek çok daha hızlı ve çok yönlü çalışıyor:
Ayrıca, büyük sayılar gerekmiyorsa, c ulong'u uint'e yeniden kodlarsanız hızlandırabilirsiniz (beş yerine 3 rand () olacaktır).
Onlar. Uygulamanızın sahtekârlığından utanmıyor musunuz (hız açısından, bu arada, çok daha yavaş olacak)? Bildiğin gibi.
Not: sahtekârlık - farklı olasılıklara sahip farklı aralık sayılarının oluşturulması.Onlar. Uygulamanızın sahtekârlığından utanmıyor musunuz (hız açısından, bu arada, çok daha yavaş olacak)? Bildiğin gibi.
Not: sahtekârlık - farklı olasılıklara sahip farklı aralık sayılarının oluşturulması.Ciddi misin?
Evet
https://stackoverflow.com/questions/10984974/why-do-people-say-there-is-modulo-bias-while-using-a-random-number-generator
Evet
https://stackoverflow.com/questions/10984974/why-do-people-say-there-is-modulo-bias-while-using-a-random-number-generator
Onlar. Yatağın altına yuvarlanan 10 senti bulmak için 100 dolarlık banknotu ateşe vermeye hazır mısınız?
Olasılıkların rolünü boş yere hafife alıyorsun. Milyonlarca yinelemede, bu "yuvarlanan madeni paralar" sizin için oldukça somut sayılarla sonuçlanacaktır. Ayrıca, kodunuz küçük aralıklar için açıkça irrasyoneldir (sürekli olarak Rand'a () beş çağrı yapmak, tıpkı "bir faturayı ateşe vermek" gibidir)
Altı ay önce bu konu forumda zaten tartışılmıştı, bu seçeneği önerdim:
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Nth aralığında rastgele bir sayı nasıl elde edilir?
Alexey Navoykov , 2018.12.31 01:25
Önceki kodum yanlıştı. Rütbeler konusunda çok akıllı. İşte doğru sürüm ve aynı zamanda daha özlü: