Mentre la soluzione esatta dipende dal problema reale, ci sono vari approcci che puoi provare a fare prima di calcolare semplicemente in forza bruta usando una libreria matematica di precisione arbitraria o multipla (BigInt, GMP, MPFR, ARPREC, ecc.).
Per prima cosa, usa un po 'di matematica. Le espressioni possono essere semplificate? Hai detto che la fonte di questi compiti riguarda i puzzle, quindi sarei molto propenso a considerare questo approccio per una soluzione, dato che questo potrebbe essere un fattore del puzzle aha momento. Le equazioni con fattoriali come le probabilità binomiali possono essere tipicamente semplificato o calcolato (indirettamente) usando tecniche matematiche piuttosto che forza bruta.
Factoring i numeri e la cancellazione di fattori comuni sarebbero una delle prime cose che proverei, a mano se necessario. Un calcolatore di precisione multiplo può essere utile.
Ri-inquadrando la domanda oi suoi valori in una base diversa (es. binario, esadecimale) o una scala di differenza (ad esempio base logaritmica 2, 10 o e - naturale ) rendere i valori più facili da gestire? Un esempio di scala logaritmica è decibel , utilizzato per RF e livelli audio.
Utilizzo di tecniche non comunemente insegnate oggigiorno, ma ben conosciute da programmatori, ingegneri, matematici che hanno familiarità con la regola di scorrimento può essere utile qualche volta.
A seconda della domanda, eseguire approssimazione prima può a volte ti conducono alla risposta corretta impedendo che le minuzie ti distolgano dall'attaccare il problema in modo creativo.
Per il tuo esempio; calcola un'equazione (approssimativa) correlata, ma semplificata.
cheèmoltovicinoallarispostacorrettaoesatta
Unaltro"trucco" è usare modulo ( mod
, %
, modulo
, a \bmod n
) che è uno dei miei modi preferiti per ridurre i numeri, quindi se lo sai alcune algebre astratte di base a volte puoi lavorare con aritmetica modulare .
Questa è una guida pratica, molto approssimativa su come affrontare un'equazione di "puzzle" o un problema di programmazione che coinvolge grandi numeri.