Bonjour,
Petites questions en vrac, désolé si certaines semblent trop naïves.
- Le compilateur est-il bien réglé en mode release
- Des fioritures sont-elles présentes ? (barre de défilement trop souvent rafraichie, de trop nombreux printf...)
- L'accès au fichiers est il optimisé (pas d'utilisation d'appels système)
- Les valeurs utilisés dans plusieurs calculs sont elles stockées plutôt que re-calculées à chaque fois ? *
- La formule est elle optimisée ? **
- Comment est calculé log2 ?
* Par exemple, si on travaille sur (bonjour, les, good) puis sur (bonjour, les, morning) on peut réutiliser pMot1, pMot2 et pMot1Mot2. (et les logarithmes associés, voir ce qui suit)
** Sachant que log(A*B) = log(A) + log(B), on peut écrire :
Code:
1 2 3 4 5 6 7 8
| pro =(pMot1Mot3 * log2(pMot1Mot3 / (pMot1 * pMot3)) )
+ (pMot1Mot2Mot3 * log2( (pMot1Mot2Mot3 * pMot1) / (pMot1Mot2 * pMot1Mot3) ))
pro = pMot1Mot3 * (log2(pMot1Mot3) - log2(pMot1) - log2(pMot3))
+ pMot1Mot2Mot3 * (
log2( pMot1Mot2Mot3 ) * log2(pMot1)
- log2(pMot1Mot2) - log2(pMot1Mot3)
) |
On voit ici qu'on peut même précalculer log2(pMot1) et log2(pMot1Mot3), pour voir si on y gagne.