2026-08-27 10:22:10 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| Misceleana.mq5 |
|
| | | //| Copyright 2026, Niquel Mendoza |
|
| | | //| https://www.mql5.com |
|
| | | //+------------------------------------------------------------------+
|
| | | #property copyright "Copyright 2026, Niquel Mendoza"
|
| | | #property link "https://www.mql5.com"
|
| | | #property version "1.00"
|
| | | #property strict
|
| | |
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | #include "Main.mqh"
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| Script program start function |
|
| | | //+------------------------------------------------------------------+
|
| | | void OnStart()
|
| | | {
|
| | | //---
|
| | | uchar buf[];
|
2026-08-29 11:36:58 -05:00 | | | const ulong number = 0x80;
|
| | |
|
| | | //---
|
| | | int t = TSN::CNumberUtils::SValueToBytesLE(number, buf, 0, -2);
|
2026-08-27 10:22:10 -05:00 | | | string out = "";
|
| | | TSN::CNumberUtils::BytesToHexLower(buf, t, out);
|
2026-08-29 11:36:58 -05:00 | | | Print("BE Format: ", out);
|
| | |
|
| | |
|
| | | //----
|
2026-09-11 09:36:42 -05:00 | | | ulong inv = 12297829382473034411; // TSN::CNumberUtils::ModInv(3); = 12297829382473034411
|
| | | ulong a = 99;
|
| | | // n\3 = n * (1\3), esto funciona en los reales pero en integers no asi que
|
| | | // n * n^-1 = 1 (MOD 1<<64) se garantiza si n es corimp con 1<<64 como es divisible entre 3 entonces es impar asi qeu si
|
| | | // Entonces la idea es encontra ese n^-1 que satisfasca eso.. para eso se usa newtn raphson
|
| | | // alg impementado en mod inv
|
| | | // podemos exprens n^-1 como x, y n seira 3 basicmante ese x seria su inveros en este sistema
|
| | | // 3*x = 1 (mod 1<<64)
|
| | | // si multiplicas k en ambos laods
|
| | | // 3kx = k (mod 1 << 64) esntoncesdivise entre 3 exacmante.. por lo qeu k debe de se multiplo de 3
|
| | | Print(inv * a); // da 33 exacto
|
2026-08-27 10:22:10 -05:00 | | | }
|
| | | //+------------------------------------------------------------------+
|
2026-09-11 09:36:42 -05:00 | | |
|