示例#1
0
def poly_racines_fractionnaires(rac_min,rac_max,denom1,X):
    '''renvoie un polynome de degré2 à racines fractionnaires '''
    '''les racines sont comprises entre rac_min et rac_max'''
    '''denom1 majore le dénominateur des racines'''
    while 1:
        #pour éviter P=77x^2
        a2=2*randrange(2)-1 #a2=-1 ou 1
        p2facteur=[randint(1,denom1)*X-randint(rac_min,rac_max)for i in range(2)]
        pol2=a2*p2facteur[0]*p2facteur[1]
        if pol2[1]!=0 and pol2[0]!=0:
            break
    pol2=pol2.simplifie()
    simplifie=abs(pgcd(pgcd(int(pol2[0]),int(pol2[1])),int(pol2[2])))
    pol2= pol2/simplifie
    return pol2.simplifie()
示例#2
0
    def simplifie(self,detail=False):
        liste_detail=[]
        coeff,radicande=simplifie_racine(self.radicande)
        numerateur=self.numerateur
        if self.radicande!=0:
            if self.coeff==1:
                    det_coeff="+ "
            elif self.coeff==-1:
                det_coeff="- "
            else:
                det_coeff="%s\\times "%(self.coeff)
            if coeff!=1 or radicande==1:
                det_coeff+=str(coeff)
        else:
            det_coeff="0"
        if radicande==1:
            #det_coeff="%s\\times%s"%(tTeX(self.coeff),coeff)
            liste_detail.append("\\dfrac{%s %s}{%s}"%\
                                    (self.numerateur,det_coeff ,self.denominateur))
            radicande=0
            numerateur=self.numerateur+(self.coeff)*int(coeff)
            coeff=0

        if coeff!=1:
            liste_detail.append(str(RacineDegre2(numerateur,
                                                 self.denominateur,
                                                 det_coeff,
                                                 radicande)))

        coeff=(self.coeff)*int(coeff)

        simplifie=pgcd(pgcd(coeff,numerateur),self.denominateur)
        numerateur=numerateur//simplifie
        coeff=coeff//simplifie
        denominateur=self.denominateur//simplifie
        if simplifie!=1:
            if radicande!=0 or denominateur!=1:
                det_numerateur="%s_{\\times %s}"%(numerateur,pTeX(simplifie))
                det_denominateur="%s_{\\times %s}"%(denominateur,pTeX(simplifie))
                det_coeff="%s_{\\times %s}"%(coeff,pTeX(simplifie))
                liste_detail.append(str(RacineDegre2(det_numerateur,det_denominateur,det_coeff,radicande)))
            liste_detail.append(str(RacineDegre2(numerateur,denominateur,coeff,radicande)))
        if detail:
            return RacineDegre2(numerateur,denominateur,coeff,radicande),liste_detail
        return RacineDegre2(numerateur,denominateur,coeff,radicande)