Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1260

 
Vitaly Muzichenko :

Rastgele 6 basamaklı sayılar elde etmek için neyi kaydetmem gerektiğini söyle?

 void OnStart ()
{
   srand ( GetTickCount ());
   for ( int i = 0 ; i < 10 ; i++)
   {
       uint random = rand_32() % 1000000 ;   // %1000000 --> ограничим 6-ю знаками 
       printf ( "random = %u" , random);
   }
}
//+------------------------------------------------------------------+
uint rand_32()
{
   return ((( uint ) rand ()) << 16 | rand ());
}
//+------------------------------------------------------------------+
 
Alexey Viktorov :

Ve sonuç ne oldu? Ben yanılmaz olduğumu iddia etmiyorum...

Sonuç olarak 6 karakterden az olduğu için bırakmak zorunda kaldım.

 if (v>=min && v<=max)

Igor Makanu :

akşam deneyeceğim.

 
Igor Makanu :

5 haneyi atla


Ancak sorun çözüldü, hepinize teşekkürler!

 
Vitaly Muzichenko :

5 haneyi atla

Evet onlar yapacak

Görevin sadece 6 karakterden fazla olmadığını düşündüm

bir seçenek olarak, Rand()%10 kullanarak ilk karakteri oluşturun

 
Igor Makanu :

Evet onlar yapacak

Görevin sadece 6 karakterden fazla olmadığını düşündüm

bir seçenek olarak, Rand()%10 kullanarak ilk karakteri oluşturun

onu koda geri koy

 if (v>=min && v<=max)

bu yeterli, işlev hala günde birkaç kez çağrılır

 
Vitaly Muzichenko :

onu koda geri koy

bu yeterli, işlev hala günde birkaç kez çağrılıyor

Numara

daha kolay

öyleyse yaz

 uint random = ( rand () % 9 + 1 ) * 1000000 +   // первый знак
                    rand_32() % 100000 ;       // ограничим 5-ю знаками
 
Igor Makanu :

Numara

daha kolay

öyleyse yaz

Pekala, her bir işareti (altı parça) rastgele çevirebilir ve numarayı toplayabilirsiniz)

 
Valeriy Yastremskiy :

Pekala, her bir işareti (altı parça) rastgele çevirebilir ve numarayı toplayabilirsiniz)

evet, ama muhtemelen kötü bir rand çıkacak - test etmeniz gerekiyor

16-bit Rand()'i kaydırmanın ve daha düşük sıralı rakamlar eklemenin hala daha kolay olduğunu düşünüyorum Rand() = 32-bit olsun - benim örneğim Rand_32()

 
Igor Makanu :

evet, ama muhtemelen kötü bir rand çıkacak - test etmeniz gerekiyor

16-bit Rand()'i kaydırmanın ve daha düşük sıralı rakamlar eklemenin hala daha kolay olduğunu düşünüyorum Rand() = 32-bit olsun - benim örneğim Rand_32()

Kabul ediyorum. genellikle görevden daha pahalı olan jeneratörün mantığını test edin veya değiştirin.

 
Valeriy Yastremskiy :

Kabul ediyorum. genellikle görevden daha pahalı olan jeneratörün mantığını test edin veya değiştirin.

)