source: pyromaths/trunk/fuentes/src/pyromaths/ex/troisiemes/proba.py @ 423

Last change on this file since 423 was 423, checked in by mabarracus, 4 years ago

add sources from pyromaths 15.10

File size: 6.4 KB
Line 
1# -*- coding: utf-8 -*-
2#
3# Pyromaths
4# Un programme en Python qui permet de créer des fiches d'exercices types de
5# mathématiques niveau collège ainsi que leur corrigé en LaTeX.
6# Copyright (C) 2006 -- Jérôme Ortais (jerome.ortais@pyromaths.org)
7#
8# This program is free software; you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation; either version 2 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with this program; if not, write to the Free Software
20# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21#
22
23import random
24from pyromaths.outils.Fractions import Fraction
25
26def proba(exo, cor):
27    couleur = ['bleue', 'rouge', 'jaune', 'verte', 'marron', 'orange']
28    initiale = ['B', 'R', 'J', 'V', 'M', 'O']
29    # Choix des 3 couleurs et du nombre de boule
30    rg = random.randrange(0, 4)
31    c1, i1, n1 = couleur[rg], initiale[rg], random.randrange(1, 6)  # 1ere couleur, son initiale et le nombre
32    # 2e couleur diférente de la première
33    rg2 = (rg + random.randrange(1, 5)) % 6
34    c2, i2, n2 = couleur[rg2], initiale[rg2], random.randrange(1, 6)
35    # 3e couleur différente des précédentes
36    c3, i3, n3 = couleur[(rg2 + 1) % 6], initiale[(rg2 + 1) % 6], random.randrange(1, 6)
37    if n1 > 1:
38        plur1 = "s"
39    else :
40        plur1 = ""
41    if n2 > 1:
42        plur2 = "s"
43    else :
44        plur2 = ""
45    if n3 > 1:
46        plur3 = "s"
47    else :
48        plur3 = ""
49    exos = [u"Dans une urne, il y a %s boule%s %s%s (%s), %s boule%s %s%s (%s) et %s boule%s %s%s (%s), indiscernables au toucher. On tire successivement et sans remise deux boules." % (n1, plur1, c1, plur1, i1, n2, plur2, c2, plur2, i2, n3, plur3, c3, plur3, i3),
50    "\\begin{enumerate}",
51    u"\\item Quelle est la probabilité de tirer une boule %s au premier tirage?" % c2,
52    u"\\item Construire un arbre des probabilités décrivant l'expérience aléatoire.",
53    u"\\item Quelle est la probabilité que la première boule soit %s et la deuxième soit %s?" % (c3, c2),
54    u"\\item Quelle est la probabilité que la deuxième boule soit %s ?" % c1,
55    "\\end{enumerate}"]
56    tot = n1 + n2 + n3
57    # calculs intermédiaires pour la question 4
58    p41 = "\\dfrac{%s}{%s}\\times \\dfrac{%s}{%s}+" % (n1, tot, n1 - 1, tot - 1)
59    p42 = "\\dfrac{%s}{%s}\\times \\dfrac{%s}{%s}+" % (n2, tot, n1, tot - 1)
60    p43 = "\\dfrac{%s}{%s}\\times \\dfrac{%s}{%s}=" % (n3, tot, n1, tot - 1)
61
62    result4 = "\\dfrac{%s}{%s}" % (n1 * (n1 - 1 + n2 + n3), tot * (tot - 1))  # resultat non simplifié de la question 4
63    cors = [u"Dans une urne, il y a %s boule%s %s%s (%s), %s boule%s %s%s (%s) et %s boule%s %s%s (%s), indiscernables au toucher. On tire successivement et sans remise deux boules." % (n1, plur1, c1, plur1, i1, n2, plur2, c2, plur2, i2, n3, plur3, c3, plur3, i3),
64
65         "\\begin{enumerate}",
66         u"\\item Quelle est la probabilité de tirer une boule %s au premier tirage?\\par " % c2,
67         "Il y a %s boules dans l'urne dont %s boule%s %s%s. \\par" % (tot, n2, plur2, c2, plur2),
68         u" La probabilité de tirer une boule %s au premier tirage est donc $\\dfrac{%s}{%s}$." % (c2, n2, tot),
69         u"\\item Construire un arbre des probabilités décrivant l'expérience aléatoire.\\\ [0,3cm] ",
70         "\\psset{unit=1 mm}",
71         "\\psset{linewidth=0.3,dotsep=1,hatchwidth=0.3,hatchsep=1.5,shadowsize=1,dimen=middle}",
72         "\\psset{dotsize=0.7 2.5,dotscale=1 1,fillcolor=black}",
73         "\\psset{arrowsize=1 2,arrowlength=1,arrowinset=0.25,tbarsize=0.7 5,bracketlength=0.15,rbracketlength=0.15}",
74         "\\begin{pspicture}(0,0)(80,53)",
75         "\\psline(0,3)(10,23)",
76         "\\psline(10,3)(10,23)",
77         "\\psline(20,3)(10,23)",
78         "\\psline(30,3)(40,23)",
79         "\\psline(40,3)(40,23)",
80         "\\psline(50,3)(40,23)",
81         "\\psline(60,3)(70,23)",
82         "\\psline(80,3)(70,23)",
83         "\\psline(70,3)(70,23)",
84         "\\psline(15,28)(40,53)",
85         "\\psline(40,53)(65,28)",
86         "\\psline(40,53)(40,28)",
87         "\\rput(20,40){$\\dfrac{%s}{%s}$} \\rput(37,40){$\\dfrac{%s}{%s}$} \\rput(60,40){$\\dfrac{%s}{%s}$}" % (n1, tot, n2, tot, n3, tot),
88         "\\rput(10,26){%s} \\rput(40,26){%s} \\rput(70,26){%s}" % (i1, i2, i3),
89         "\\rput(0,10){$\\dfrac{%s}{%s}$} \\rput(7,10){$\\dfrac{%s}{%s}$} \\rput(20,10){$\\dfrac{%s}{%s}$}" % (n1 - 1, tot - 1, n2, tot - 1, n3, tot - 1),
90         "\\rput(0,0){%s} \\rput(10,0){%s} \\rput(20,0){%s}" % (i1, i2, i3),
91         "\\rput(30,10){$\\dfrac{%s}{%s}$} \\rput(37,10){$\\dfrac{%s}{%s}$} \\rput(50,10){$\\dfrac{%s}{%s}$}" % (n1, tot - 1, n2 - 1, tot - 1, n3, tot - 1),
92         "\\rput(30,0){%s} \\rput(40,0){%s} \\rput(50,0){%s}" % (i1, i2, i3),
93         "\\rput(60,10){$\\dfrac{%s}{%s}$} \\rput(67,10){$\\dfrac{%s}{%s}$} \\rput(80,10){$\\dfrac{%s}{%s}$}" % (n1, tot - 1, n2, tot - 1, n3 - 1, tot - 1),
94         "\\rput(60,0){%s} \\rput(70,0){%s} \\rput(80,0){%s}" % (i1, i2, i3),
95         "\\end{pspicture}",
96         "\\vspace{0.3cm}",
97         u"\\item Quelle est la probabilité que la première boule soit %s et la deuxième soit %s?\\par" % (c3, c2),
98         u"On utilise l'arbre construit précédemment.\\par",
99         "$p(%s,%s)=%s \\times %s = %s$\\par" % \
100                (i3, i2, str(Fraction(n3, tot)),
101                 str(Fraction(n2, tot - 1)),
102                 str(Fraction(n3 * n2, tot * (tot - 1)))),
103         u"La probabilité que la première boule soit %s et la deuxième soit %s est égale à $\\dfrac{%s}{%s}$." % (c3, c2, n3 * n2, tot * (tot - 1)),
104         u"\\item Quelle est la probabilité que la deuxième boule soit %s ?\\par" % c1,
105         u"On note (?, %s) l'évènement: la deuxième boule tirée est %s. \\par" % (i1, c1),
106         "$p(?,%s)=p(%s,%s)+p(%s,%s)+p(%s,%s,)=" % (i1, i1, i1, i2, i1, i3, i1) + p41 + p42 + p43 + result4 + "$",
107         "\\end{enumerate}"]
108    for st in exos:
109        exo.append(st)
110    for st in cors:
111        cor.append(st)
112
113def tex_proba():
114    exo = ['\\exercice']
115    cor = ['\\exercice*']
116    proba(exo, cor)
117    return (exo, cor)
118
119tex_proba.description = u'Probabilités'
Note: See TracBrowser for help on using the repository browser.