Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def quest_fonctions_rationnelles_sur_R():
from pyromaths.classes.Fractions import Fraction
nomf = ['f', 'g', 'h', 'k'][randrange(4)]
var = ['t', 'x'][randrange(2)]
X = Polynome({1:1}, var)
# intervalle pour les racines entières ou fractionnaire
rac_min = -9
rac_max = 9
b1 = b2 = a1 = a2 = 0
while b1 == 0 or b2 == 0 or a1 == 0 or a2 == 0 or a1 * (-float(b2) / a1) + b1 == 0 or (a1 * b2 / a2 - b1) == 0:
# (a1*b2/a2 - b1)==0 on teste que la racine de Q n'annule pas P donc on ne peut pas simplifier
b1 = randint(rac_min, rac_max)
b2 = randint(rac_min, rac_max)
a1 = randint(-5, 5)
a2 = randint(-5, 5)
P = a1 * X + b1
Q = a2 * X + b2
borneinf = float("-inf")
bornesup = float("+inf")
rac_max = 10
# X est le polynome P(x)=x pour faciliter la construction des polynômes,
inconnues = ['x', 'y', 'z', 't']
nom_poly = ['P', 'Q', 'R', 'S']
exo.append(_(u"Factoriser les polynômes suivants :"))
# cor=[]u"Factoriser les polynômes suivants :"]
exo.append("\\begin{enumerate}")
cor.append("\\begin{enumerate}")
####identites remarquables
nomP = nom_poly[randrange(4)]
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
P, sgns = poly_id_remarquables(rac_min, rac_max, X) # sgns=-2,0 ou 2
exo.append(_(u"\\item Factoriser $%s(%s)=%s$ à l'aide d'une identité remarquable.") % (nomP, var, P(var)))
cor.append(_("\\item Factoriser $%s(%s)=%s$") % (nomP, var, P(var)))
factorisation, dummy = factorise_identites_remarquables(P, sgns, var, racines=True)
factorise = "$$%s" % P
for i in range(len(factorisation)):
factorise += "=" + factorisation[i]
cor.append(factorise + "$$")
####Racines entières
nomP = nom_poly[randrange(4)]
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
P = poly_racines_entieres(rac_min, rac_max, X)
X = Polynome({1:1}, var)
P, sgns = poly_id_remarquables(rac_min, rac_max, X) # sgns=-2,0 ou 2
exo.append(_(u"\\item Factoriser $%s(%s)=%s$ à l'aide d'une identité remarquable.") % (nomP, var, P(var)))
cor.append(_("\\item Factoriser $%s(%s)=%s$") % (nomP, var, P(var)))
factorisation, dummy = factorise_identites_remarquables(P, sgns, var, racines=True)
factorise = "$$%s" % P
for i in range(len(factorisation)):
factorise += "=" + factorisation[i]
cor.append(factorise + "$$")
####Racines entières
nomP = nom_poly[randrange(4)]
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
P = poly_racines_entieres(rac_min, rac_max, X)
exo.append("\\item $%s(%s)=%s$" % (nomP, var, P(var)))
cor.append(_("\\item Factoriser $%s(%s)=%s$\\par") % (nomP, var, P(var)))
exo, cor = redaction_factorisation(P, nomP, exo, cor)
####Racines fractionnaires
nomP = nom_poly[randrange(4)]
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
# denominateur maximmum pour les racines fractionnaires
denom_max = 12
P = poly_racines_fractionnaires(rac_min, rac_max, denom_max, X)
exo.append("\\item $%s(%s)=%s$" % (nomP, var, P(var)))
cor.append(_("\\item Factoriser $%s(%s)=%s$\\par") % (nomP, var, P(var)))
TeX_intervalle = "\\left[%s~;~%s\\right]" % (TeX(borneinf), TeX(bornesup))
# intervalle pour les racines entières ou fractionnaire
a = 3 * randint(1, 3)
rac_min = -9
rac_max = 9
# denominateur maximmum pour les racines fractionnaires
# denom_max = denom1 = 12
# Valeurs absolues maximales des coefficients d'un polynôme quelconque
# abs_a = 6
# abs_b = 10
abs_c = 10
# X est le polynome P=x pour faciliter la construction des polynômes,
# inconnues = ['x', 'y', 'z', 't']
# nom_poly = ['P', 'Q', 'R', 'S']
var = "x"
X = Polynome({1:1}, var=var)
nomP = ["f", "g", "h", "k", "p", "q"][randrange(6)]
Pprime = poly_racines_entieres(rac_min, rac_max, X, a1=a)
P = Pprime.primitive() + randint(-abs_c, abs_c)
P = P.simplifie()
exo = [_(u"\\item Étudier le sens de variations de $%s$ définie par $%s(x)=%s$ sur $%s$.") % (nomP, nomP, P(var), TeX_intervalle)]
cor = [_(u"\\item Étudier le sens de variations de $%s$ définie par $%s(x)=%s$ sur $%s$.") % (nomP, nomP, P(var), TeX_intervalle)]
cor.append("\\par $%s'(x)=%s$\\\\" % (nomP, Pprime(var)))
cor.append(_(u"Je dois étudier le signe de $%s'(%s)$ qui est un polynôme du second degré.\\par") % (nomP, var))
delta, simplrac, racines, str_racines, factorisation = factorisation_degre2(Pprime, factorisation=False)
# cor=redaction_factorisation(Pprime,nomP+"'",exo=[],cor=cor)[1]
# cor.pop(-5)
redaction_racines(Pprime, nomP + "'", var, cor)
str_variables, str_signes, str_valeurs, signes, ligne_valeurs = tableau_de_signe(Pprime, nomP + "'", delta, racines, cor, borneinf, bornesup, detail=True)
abs_b = 10
abs_c = 10
# X est le polynome P=x pour faciliter la construction des polynômes,
inconnues = ['x', 'y', 'z', 't']
# nom_poly = ['P', 'Q', 'R', 'S']
exo.append(_(u"Résoudre les équations suivantes :"))
cor.append(_(u"Résoudre les équations suivantes :"))
exo.append("\\begin{enumerate}")
cor.append("\\begin{enumerate}")
# Racines entières
nomP = 'P'
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
P = poly_racines_entieres(rac_min, rac_max, X)
exo.append("\\item $%s=0$\\par" % (P(var)))
cor.append("\\item $%s=0$\\par" % (P(var)))
cor = redaction_racines(P, nomP, var, cor)
# Racines fractionnaires
nomP = 'P'
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
P = poly_racines_fractionnaires(rac_min, rac_max, denom_max, X)
exo.append("\\item $%s=0$\\par" % (P(var)))
cor.append("\\item $%s=0$\\par" % (P(var)))
cor = redaction_racines(P, nomP, var, cor)
cor.append(factorise + "$$")
####Racines entières
nomP = nom_poly[randrange(4)]
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
P = poly_racines_entieres(rac_min, rac_max, X)
exo.append("\\item $%s(%s)=%s$" % (nomP, var, P(var)))
cor.append(_("\\item Factoriser $%s(%s)=%s$\\par") % (nomP, var, P(var)))
exo, cor = redaction_factorisation(P, nomP, exo, cor)
####Racines fractionnaires
nomP = nom_poly[randrange(4)]
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
# denominateur maximmum pour les racines fractionnaires
denom_max = 12
P = poly_racines_fractionnaires(rac_min, rac_max, denom_max, X)
exo.append("\\item $%s(%s)=%s$" % (nomP, var, P(var)))
cor.append(_("\\item Factoriser $%s(%s)=%s$\\par") % (nomP, var, P(var)))
exo, cor = redaction_factorisation(P, nomP, exo, cor)
####Racines quelconques
nomP = nom_poly[randrange(4)]
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
# Valeurs absolues maximales des coefficients d'un polynôme quelconque
abs_a = 1
abs_b = 10
nomP = nom_poly[randrange(4)]
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
# denominateur maximmum pour les racines fractionnaires
denom_max = 12
P = poly_racines_fractionnaires(rac_min, rac_max, denom_max, X)
exo.append("\\item $%s(%s)=%s$" % (nomP, var, P(var)))
cor.append(_("\\item Factoriser $%s(%s)=%s$\\par") % (nomP, var, P(var)))
exo, cor = redaction_factorisation(P, nomP, exo, cor)
####Racines quelconques
nomP = nom_poly[randrange(4)]
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
# Valeurs absolues maximales des coefficients d'un polynôme quelconque
abs_a = 1
abs_b = 10
abs_c = 10
P = poly_racines_quelconques(abs_a, abs_b, abs_c, X)
exo.append("\\item $%s(%s)=%s$" % (nomP, var, P(var)))
cor.append(_("\\item Factoriser $%s(%s)=%s$\\par") % (nomP, var, P(var)))
exo, cor = redaction_factorisation(P, nomP, exo, cor)
exo.append("\\end{enumerate}")
cor.append("\\end{enumerate}")
return exo, cor
avant = reste.deg
reste = reste - soustrait_reste
delta = avant - reste.degre_max
for dummy in range(i):
string += " &"
i = i + delta
# prochain = 1
string += tab_print(reste, min(diviseur.deg + 1, reste.degre_max + 1) + delta - sauve, debut=delta)
# fait descendre les monome du dividende
for dummy in range(longueur - i - diviseur.deg + sauve):
string += " & "
string += "\\\\ \n"
string += "\\end{array}\n$$"
string += "\n On a $$" + dividende.TeX() + " = \\left(" + texquotient.TeX() + "\\right) \\times \\left(" + diviseur.TeX() + "\\right)"
if restera != Polynome(0):
if len(restera.puiss) == 1 and restera[restera.deg] > 0: # monome
string += "+" + restera.TeX()
else:
string += "+\\left(" + restera.TeX() + "\\right)"
string += "$$"
return string
def tab_print(polynome, longueur=0, parenthese=False, debut=0):
# Racines entières
nomP = 'P'
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
P = poly_racines_entieres(rac_min, rac_max, X)
exo.append("\\item $%s=0$\\par" % (P(var)))
cor.append("\\item $%s=0$\\par" % (P(var)))
cor = redaction_racines(P, nomP, var, cor)
# Racines fractionnaires
nomP = 'P'
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
P = poly_racines_fractionnaires(rac_min, rac_max, denom_max, X)
exo.append("\\item $%s=0$\\par" % (P(var)))
cor.append("\\item $%s=0$\\par" % (P(var)))
cor = redaction_racines(P, nomP, var, cor)
# Racines quelconques
nomP = 'P'
var = inconnues[randrange(4)]
X = Polynome({1:1}, var)
P = poly_racines_quelconques(abs_a, abs_b, abs_c, X)
exo.append("\\item $%s=0$\\par" % (P(var)))
cor.append("\\item $%s=0$\\par" % (P(var)))
redaction_racines(P, nomP, var, cor)