Bonjour,
Je cherche à convertir un nombre en un autre :
20 = 1
40 = 2
60= 3
80 = 4
100 = 5

Quelqu'un aurait-il une formule mathématique ?

Merci.

7 réponses


neor
Réponse acceptée
$result = $nbr / (10 * 3.5 - (5* 3 ));
StarTechs
Réponse acceptée

Je pense que la méthode de neor est plus optimisée. Je pense que tu as oublié de bien entamer une conversion en entier également puis de faire une condition ternaire pour vérifier que le nombre 0 ne soit pas dans ta liste. à partir de là tu peux rantamer une conversion en nombre flottant pour otpimiser le calcul qui sera parralélisé sur des architectures de type 64 bits (verifie que opcache est bien installé).

// Notez l'utilisation des nombres binaires pour plus de rapidité
$result = (int) $nbr / (10 * 3.5 - (bindec(1111)));
$result = $result == 0 ? bindec(0001) : (float) $result;

Sur ton serveur tu devras modifier la configuration de ton fichier php.ini pour activer opcache :

 zend_extension=opcache.so
 opcache.enable=1
 opcache.memory_consumption=512
 opcache.max_accelerated_files=5000
 opcache.validate_timestamps=1
 opcache.revalidate_freq=60

Je te conseille quand même par mesure de précaution de bien compiler par toi même les sources de PHP avec le flag --enable-opcache comme indiqué dans la documentation officielle du langage PHP.

cd /usr/src
gunzip php-x.x.x.tar.gz
tar -xvf php-x.x.x.tar
cd /usr/src/php-x.x.x
./configure --prefix=/wwwroot/php --with-apxs2=/wwwroot/bin/apxs --with-config-file-path=/wwwroot/php --with-mysql  --enable-opcache

Comme tu peux le voir il te faudra des notions avancées au niveau des connaissances de ton serveur, ton problème étant assez complexe je ne peux que t'encourager à prendre un serveur dédié et effectuer ces opérations.

En éspérant t'avoir aidé

Salut,

C'est si dur que ça ? Et les divisions ?

10/10 would bang.

nb = nb / 20

Je préfère la méthode de neor, qui est plus optimisée. Haha.

Les trolls ont résolus le problème !