• Home
    • Home
    • Wouf's Blog
    • Boutique TShirt
    • Sponsoring
  • Math
    • Math au collège
    • Applis et boutiques
    • Cours particuliers
  • Jeux
    • Echecs
    • Poker
    • boggle - version Anglaise
    • boggle - version Française
  • Info
    • Console Python
    • SVG EDIT
    • fond d'écran
    • Prénom en chinois
    • Boite à outils
    • Mes Logiciels
    • DIVERS
    • Webmaster?
    • Liens

Laurent Petitprez

Tweet


Les conseils de Wouf

Beaucoup d’élèves entrant au lycée ont en effet des difficultés à manipuler les fractions, les racines carrées, les puissances, à factoriser des expressions… Ces notions, apprises au collège, sont mal assimilées, et le programme des classes de lycée ne prévoit pas de les retravailler en profondeur.

Cet ouvrage propose une remédiation pas à pas. Un code simple et mnémotechnique est associé à chacune des règles et rappelé dans toutes les corrections d’exercices. Il permet de se repérer et de comprendre ses erreurs.

J'ai été persécuté fort au-delà de mon mérite.

VOLTAIRE (sur mon T shirt!)

Voir toutes les citations.


Patatoide (successeur de PPP)

Les courses, pour reprendre le slogan célèbre, c'est ma grande passion...

Mais gagner de l'argent aux courses, en pariant sur des résultats assez aléatoire est risqué, même si le frisson est au rendez-vous.

Le but de chaque turfiste est de tenter de maîtriser le hasard.

Patatoide était un utilitaire d'aide à la prise de paris hippiques. 

 

Le raisonnement ensembliste:

20 est le nombres maximum de partants dans une course servant de support au quinté+. Cela donne 15504 quintés possibles si on ne tient pas compte de l'ordre. Les jouer tous est sinon impossible du moins assez idiot.

Mais il est parfois possible de restreindre ces combinaisons par des "contraintes": Supposons que les 8 premiers favoris de la presse sont 1,2,3,4,5,6,7,8 alors une contrainte comme :

  • au moins 3 chevaux dans 1,2,3,4,5,6,7,8 est raisonnable et limite considérablement le nombres de "quintés possibles".
Il ne reste plus alors que 4592 quintés possibles :

Supposons que les numéros 1,8,9,10,11 soient des femelles et que ces mêmes femelles ne réussissent habituellement pas dans le passé de cette course on utilisera (par exemple) la contrainte:

  • au plus 1 cheval dans 1,8,9,10,11...

 

L'expérience de chacun lui permet de trouver les contraintes les plus efficaces.

La vocation de Patatoide (le successeur de PPP)

La vocation de Patatoide est de gérer un grand nombres de contraintes ensemblistes de ce genre, c'est infaisable à la main!

Patatoide et diagramme de Venne...

Un diagramme de Venn (également appelé diagramme logique) est un diagramme qui montre toutes les relations logiques possibles dans une collection finie de différents ensembles. Les diagrammes de Venn ont été conçus autour de 1880 par John Venn. Ils sont utilisés pour enseigner la théorie des ensembles élémentaires, ainsi qu'à illustrer des relations simples en probabilité, logique, statistiques, linguistique et en informatique.

(Sources : Wikipedia)

Ainsi avec Patatoide et l'exemple précédent on peut très rapidement saisir dans le fichier "contraintes.txt" les deux lignes suivantes :

au moins 3 dans 1 2 3 4 5 6 7 8

au plus 1 dans 1 8 9 10 11

Pour obtenir un fichier html contenant les 2916 quintés restant:

  • Ouvrir la page resultats.htm
  • Ouvrir la page contraintes.txt

Mode d'emploi de Patatoide

Patatoide est développé en Python, mais un installateur windows est également proposé en téléchargement en bas de page.

Dans le répertoire de l'application un double clic sur l'exe (sous windows) ou sur le .py sur tous systèmes où Python (3) est installé lance le processus suivant :

  • Patatoide cherche dans son répertoire le fichier contraintes.txt, et ouvre ce fichier
  • Patatoide filtre alors tous les quintés possibles en tenant compte des contraintes.
  • Patatoide choisit pour chaque quinté un ordre aléatoire.
  • Patatoide crée et affiche le fichier html contenant les résultats

Syntaxe du fichier contraintes.txt

Chaque ligne commence par "au moins" ou "au plus", suivi d'un entier inférieur à 5 du mot "dans" et d'une liste d'entiers séparés par un espace.

Exemples :

au plus 2 dans 1 2 3 4

au moins 2 dans 2 4 6 8 10

au plus 0 dans 17 18 19 20 (16 partants!)

Sources Python :

Code Python traduit en HTML:
#patatoide.py by wouf version 1.0.0
#http://site2wouf.fr/patatoide.php

import random #pour gérer l'ordre aléatoirement
import webbrowser #pour lancer le navigateur 
contraintes=list() #la liste des contraintes
quintes=list() #la liste des quintés construite dans la fonction lesquintes()
restes=list() #les quintés filtrés par les contraintes
introhtml=""  #pour affichage dans resultats.htm

def lesquintes():
    """ Cette fonction construit la liste quintes
    variable globale """ 
    for i in range(1,17):
        for j in range (i+1,18):
            for k in range(j+1,19):
                for l in range (k+1,20):
                    for m in range (l+1,21):
                         quintes.append({i,j,k,l,m})
                                    
def test():
    """ On teste le fichier contraintes.txt""" 
    global introhtml
    partant={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
    try:
        with open("contraintes.txt" ,"r" ) as f:
            #print("Le fichier de contraintes existe et est ouvert" )
            texte=f.read()
            
            c=texte.split("\n" )
            #print("Il contient " +str(len(c))+" lignes" )
            for i in range(len(c)):
                if c[i][:8]=="au moins" :
                    n=c[i][9:].split("dans" )
                    if int(n[0]) in (1,2,3,4,5) :
                        m=n[1].split()
                        me={int(x) for x in m}
                        ligne=("-" ,int(n[0]),me)
                        if me<=partant and int(n[0])<=len(me) and ligne not in contraintes:
                            contraintes.append(ligne)                                                                    
                elif c[i][:7]=="au plus" :
                    n=c[i][8:].split("dans" )
                    if int(n[0]) in (0,1,2,3,4,5) :
                         m=n[1].split()
                         me={int(x) for x in m}
                         ligne=("+" ,int(n[0]),me)
                         if me<=partant and int(n[0])<=len(me)and ligne not in contraintes:
                             contraintes.append(ligne)
            #print()
            introhtml+="<p>Nombres de contraintes distinctes reconnues :" +str(len(contraintes))+"</p>" 
          
            for c in contraintes:
                if c[0]=="-" :
                    ligne="au moins " 
                else :
                    ligne="au plus " 
                ligne+=str(c[1])+" dans " 
                for i in sorted(list(c[2])):
                    ligne += str(i)+" " 
                    
                #print(ligne)
                introhtml+="<p>" +str(ligne)+"</p>" 
            resultat()
            #print("Il reste " ,len(restes), " quintes" )
            
                
                    
               
            
    except IOError:
        introhtml+=("<p>Le fichier contraintes.txt est inexistant dans le r&eacute;peroire de l'application !</p>" )
        resultat()
    introhtml+="<p>Il reste " +str(len(restes))+" quintes </p>"     


        
def verifie(q,c):
    """q est un set quinte
    c est un liste contrainte
    la fonction renvoie un booleen""" 
    
    if (c[0]=="+"  and len(q & c[2])<=int(c[1])) or (c[0]=="-"  and len(q & c[2])>=int(c[1])):
        return True #le quinté est accepté
    else:
        return False #le quinté est refusé
    
        
        
  
    

def resultat():
    """ filtre les quintes avec les contraintes """ 
    for q in quintes:
        q=set(q)
        bon=True
        for c in contraintes:
            
            if not verifie(q,c):
                bon=False
        if bon:
            restes.append(q)
            

def creehtml():
    """ cette fonction crée le fichier html""" 
    entete="""
<!doctype html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>patatoide from wouf</title>

<style>
ol {counter-reset: i;} 
li {
	list-style-type: none;
	counter-increment: i; 
	margin-bottom: 3px;
	m
}
li:before {
	content: counter(i); 
	padding: 0 20px 2px;
	margin-right: 40px;
	vertical-align: bottom;
	background: #01DF01;
	-moz-border-radius: 60px;
	border-radius: 60px;
	font-weight: bold;
	font-size: 0.8em;
	color: white;

	
		
}

span {
 
	padding: 0 20px 2px;
	margin-right: 40px;
	vertical-align: bottom;
	background: #9AFE2E;
	-moz-border-radius: 60px;
	border-radius: 60px;
	font-size: 0.8em;
	color: black;



}
</style>
</head>
<body>
<h1>Patatoide (from Wouf)</h1>
<a href="http://site2wouf.fr/patatoide.php">Le site officiel</a>

""" 
    entete+=introhtml+"""<p style="margin-left:50px"><ol style="list-style-type: disc;">""" 

    pied="""
</ol></p></body>
</html>""" 
    f=open("resultats.htm" ,"+w" )
    f.write(entete)
    random.shuffle(restes)
    for l in restes:
        chaine="<li ><span>" 
        q=list(l)
        random.shuffle(q)
        for qte in q:
            chaine+="&nbsp;" +str(qte)+"&nbsp;" 
        chaine+="</span></li>" 
    
        f.write(chaine) 
       
    
    f.write(pied)
    f.close()
    


lesquintes()
test()
creehtml()
webbrowser.open("resultats.htm" )



patatoide.py

DOWNLOAD - version windows

Téléchargement

SAV

Ce n'est pas parce que c'est gratuit que vous n'avez pas droit au meilleur ! Utilisez le champ suivant pour des questions ou des commentaires !

 


Tweets de @wouf

Comment ???

NEWS

  • Page : https://site2wouf.fr/patatoide.php
  • Catégorie : Non définie

Miniature : Sicilienne 1. e4 c5 2. Cf3 Cc6 3.b4 ?! (2)

[pgn][Event "Live Chess"] [Site "Chess.com"] [Date "2021.04.14"] [Round "-"] [White "wouf"] [Black "FujiTime"] [Result "1-0"] [CurrentPosition "3k1b1r/Q2b1ppp/B1p1p1q1/3nN3/8/8/P4PPP/2R2RK1 b - -"] [Timezone "UTC"] [ECO "B30"] [ECOUrl "https://www.chess.com/openings/Sicilian-Defense-Old-Sicilian-Variation"] [UTCDate "2021.04.14"] [UTCTime "07:48:42"] [WhiteElo "2079"] [BlackElo "1984"] [TimeControl "180+2"] [Termination "wouf won by resignation"] [StartTime "07:48:42"] [EndDate "2021.04.14"] [EndTime "07:52:13"] [Link "https://www.chess.com/game/live/12125267251"] 1. e4 c5 2. Nf3 Nc6 3. b4 Nxb4 4. c3 Nc6 5. d4 cxd4 6. cxd4 d5 7. exd5 Qxd5 {Critical move.} 8. Nc3 Qa5 {Critical move.} 9. d5 Qxc3+ 10. Bd2 Qf6 11. dxc6 {Critical move.} 11... bxc6 {Critical move.} 12. Rc1 Bd7 13. Qb3 e6 14. Qb7 Rc8 15. Qxa7 Ne7? {MISTAKE (+3.40)} ({(-0.48) The best move was} 15... Qd8 16. Ne5 Nf6 17. Bd3 Bd6 18. Qd4 Qe7 19. O-O c5 20. Nxd7 Qxd7 21. Qc4 O-O 22. Rfd1 Ra8 23. Bg5 Nd5 24. Qe4 f5 25. Qf3 h6...

lien vers l'article sur wouf blog
 

TIPS

Utilisateur de Python et manipulateur de fractions ?

Connaissez-vous l'objet fraction ?

Voir tous les conseils.

Dernière mise à jour:

Le jeudi 14 janvier 2021

Nouvelle Page !

  • Les exercices du jour sur les Probabilités

Voir toutes les mises à jour.

 

Trois liens disponibles !

Votre propre message ici, c'est possible! Plus d'informations



Sauf mention contraire, le site est placé sous double licence Creative Commons et GNU Free Documentation License, par contre les grandes images décoratives appartiennent à Corbis et sont licenciées par microsoft

Contact: w0uf@free.fr (avec un zéro à la place du O)