PolluxLe 18/05/2008 à 19:55
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 : 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. 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. 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(). 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).