62Fermer64
PpHdLe 18/05/2008 à 20:19
Pollux (./62) :
Ben l'incohérence c'est que si tu prends la position "on va faire absolument tous les calculs mod p, sauf bien sûr pour les exposants où ça n'aurait pas de sens", alors c'est parfaitement logique modulo 3 de réduire sqrt(4) en sqrt(1) = 1

Oui (Au passage, la position est "je considère l'expression dans Z/pZ(x,...z)"
Pollux (./62) :
La notion de racine carrée mod p n'est peut-être pas définie partout, elle est définie seulement au signe près, etc, mais elle a un sens.

Oui
Pollux (./62) :
Dans ces conditions c'est logique de réduire ce qu'il y a sous la racine mod p, de même que tu réduis p*n en 0*n.

Oui
Pollux (./62) :
C'est radicalement différent de la position "ah non surtout pas on ne peut pas simplifier sqrt(4) en sqrt(1), parce que ce sont deux entiers différents", qui considère d'abord les entiers puis prend la classe mod p de cet entier, et s'apparente donc plus à rem() qu'à mod().

Mais ce n'est pas cette position là.
Dans 4^n, on ne sait pas si n est complexe, donc on ne fait rien (4^I % 3, je ne sais pas trop ce que ca pourrait donner).
Pour les rationnels, le problème est le choix de la racine dans Z/pZ. Je n'ai pas trouvé un moyen de spécifier quelle racine retourner à 4^(1/2) % 3 (J'ai pas passé beaucoup de temps non plus). Ensuite, tu pourras me dire qu'à l'heure actuelle, ce n'est pas très consistant. Je suis d'accord c'est connu, et c'est dans la TODO list.
Le même problème survient sans modulo dans 1^(1/8) par exemple. Je dois retourner 1 ou la racine 8-ième de l'unité ?
Pollux (./62) :
Je ne sais pas si tu gères les trucs genre rootof(), mais c'est exactement pareil : pour être cohérent tu vas devoir réduire rootof(x^2-4) en rootof(x^2-1), ou plus généralement rootof(x^n-4) en rootof(x^n-1).

Oui