Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

Répondre

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt seize moins quaranteneuf
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Retour

Résumé de la discussion (messages les plus récents en premier)

yoshi
28-04-2024 12:45:25

Garanti sans SI :
r96k.png

@+

yoshi
27-04-2024 20:31:53

B'soir,

Hum... HUM.... Comment ça pas une formule ?? Oui, j'ai bien réalisé des simulations, mais sur la base de la formule proposée par Ernst, sans cette formule le nouveau script ne fonctionne pas.
Cette formule remplace tous les if des scripts précédents, ou tous tes SI...
$\forall x \in \{-1,1\}, S=\dfrac{S}{2} +\dfrac{|S|\times|x|}{2x}+x$.

Ce soir, il est tard, mais demain je sors mon tableur OpenOffice Calc (produit libre et gratuit) et je reproduira la même simulation qu'en Python avec cette formule sans souci et sans Si (comme le Puy à l'orthographe près).
N-B : Ce sera parfaitement reproductible sur Excel (produit  propriétaire et payant) sans  modification de syntaxe...


@+

Bernard-maths
27-04-2024 19:40:45

Bonsoir !

Hum ... pour moi il n'y a pas de formule, mais un programme de simulation ...

B-m

yoshi
27-04-2024 19:05:58

Re,

Plus court en reprenant l'idée de Ernst, montrant que j'avais tort : il y a bien une formule.
Je reprends les sorties aléatoires des posts #1 et #2 que je collationne dans la liste Rep et je relance...

S,Comm=0,["  Mauvaise réponse    ", "  Bonne réponse       "]
Rep=[1,-1,-1,-1,-1,-1,-1,1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1]
#Rep=[-1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,1,1,-1,-1,1,-1,-1]
for x in range(0,20):
    rp=Rep[x]
    Sa=S
    S=S/2+(abs(S)*abs(rp))/(2*rp)+rp
    print ("Réponse %2i"%(x+1)," Ancien score %2i"%Sa,Comm[rp+(rp<0)],"Nouveau score %2i" %S)
 

Sortie (conforme à celle du post #1):


Réponse  1  Ancien score  0   Bonne réponse        Nouveau score  1
Réponse  2  Ancien score  1   Mauvaise réponse     Nouveau score -1
Réponse  3  Ancien score -1   Mauvaise réponse     Nouveau score -2
Réponse  4  Ancien score -2   Mauvaise réponse     Nouveau score -3
Réponse  5  Ancien score -3   Mauvaise réponse     Nouveau score -4
Réponse  6  Ancien score -4   Mauvaise réponse     Nouveau score -5
Réponse  7  Ancien score -5   Mauvaise réponse     Nouveau score -6
Réponse  8  Ancien score -6   Bonne réponse        Nouveau score  1
Réponse  9  Ancien score  1   Bonne réponse        Nouveau score  2
Réponse 10  Ancien score  2   Mauvaise réponse     Nouveau score -1
Réponse 11  Ancien score -1   Bonne réponse        Nouveau score  1
Réponse 12  Ancien score  1   Mauvaise réponse     Nouveau score -1
Réponse 13  Ancien score -1   Bonne réponse        Nouveau score  1
Réponse 14  Ancien score  1   Mauvaise réponse     Nouveau score -1
Réponse 15  Ancien score -1   Mauvaise réponse     Nouveau score -2
Réponse 16  Ancien score -2   Mauvaise réponse     Nouveau score -3
Réponse 17  Ancien score -3   Bonne réponse        Nouveau score  1
Réponse 18  Ancien score  1   Mauvaise réponse     Nouveau score -1
Réponse 19  Ancien score -1   Bonne réponse        Nouveau score  1
Réponse 20  Ancien score  1   Mauvaise réponse     Nouveau score -1

Dans le code je déplace le # (commentaire), de la 2e ligne de Rep à la première :
Sortie (conforme à celle du post #2)


Réponse  1  Ancien score  0   Mauvaise réponse     Nouveau score -1
Réponse  2  Ancien score -1   Bonne réponse        Nouveau score  1
Réponse  3  Ancien score  1   Bonne réponse        Nouveau score  2
Réponse  4  Ancien score  2   Mauvaise réponse     Nouveau score -1
Réponse  5  Ancien score -1   Mauvaise réponse     Nouveau score -2
Réponse  6  Ancien score -2   Mauvaise réponse     Nouveau score -3
Réponse  7  Ancien score -3   Mauvaise réponse     Nouveau score -4
Réponse  8  Ancien score -4   Mauvaise réponse     Nouveau score -5
Réponse  9  Ancien score -5   Mauvaise réponse     Nouveau score -6
Réponse 10  Ancien score -6   Bonne réponse        Nouveau score  1
Réponse 11  Ancien score  1   Mauvaise réponse     Nouveau score -1
Réponse 12  Ancien score -1   Bonne réponse        Nouveau score  1
Réponse 13  Ancien score  1   Bonne réponse        Nouveau score  2
Réponse 14  Ancien score  2   Bonne réponse        Nouveau score  3
Réponse 15  Ancien score  3   Bonne réponse        Nouveau score  4
Réponse 16  Ancien score  4   Mauvaise réponse     Nouveau score -1
Réponse 17  Ancien score -1   Mauvaise réponse     Nouveau score -2
Réponse 18  Ancien score -2   Bonne réponse        Nouveau score  1
Réponse 19  Ancien score  1   Mauvaise réponse     Nouveau score -1
Réponse 20  Ancien score -1   Mauvaise réponse     Nouveau score -2

@+

yoshi
25-04-2024 17:27:58

Re,

Nouveau code plus "ramassé" :

from random import randint

S,Comm=0,["  Mauvaise réponse    ", "  Bonne réponse       "]
for n in range(1,21):
    rp=randint(0,1)
    Sa=S
    if Sa>=0:
        S=S+1 if rp==1 else -1        
    elif Sa<=0:
        S=S-1 if rp==0 else 1          
    print ("Réponse %2i"%n," Ancien score %2i"%Sa,Comm[rp],"Nouveau score %2i" %S)
 

Exemple de sortie:


Réponse  1  Ancien score  0   Mauvaise réponse     Nouveau score  -1
Réponse  2  Ancien score -1   Bonne réponse        Nouveau score   1
Réponse  3  Ancien score  1   Bonne réponse        Nouveau score   2
Réponse  4  Ancien score  2   Mauvaise réponse     Nouveau score  -1
Réponse  5  Ancien score -1   Mauvaise réponse     Nouveau score  -2
Réponse  6  Ancien score -2   Mauvaise réponse     Nouveau score  -3
Réponse  7  Ancien score -3   Mauvaise réponse     Nouveau score  -4
Réponse  8  Ancien score -4   Mauvaise réponse     Nouveau score  -5
Réponse  9  Ancien score -5   Mauvaise réponse     Nouveau score  -6
Réponse 10  Ancien score -6   Bonne réponse        Nouveau score   1
Réponse 11  Ancien score  1   Mauvaise réponse     Nouveau score  -1
Réponse 12  Ancien score -1   Bonne réponse        Nouveau score   1
Réponse 13  Ancien score  1   Bonne réponse        Nouveau score   2
Réponse 14  Ancien score  2   Bonne réponse        Nouveau score   3
Réponse 15  Ancien score  3   Bonne réponse        Nouveau score   4
Réponse 16  Ancien score  4   Mauvaise réponse     Nouveau score  -1
Réponse 17  Ancien score -1   Mauvaise réponse     Nouveau score  -2
Réponse 18  Ancien score -2   Bonne réponse        Nouveau score   1
Réponse 19  Ancien score  1   Mauvaise réponse     Nouveau score  -1
Réponse 20  Ancien score -1   Mauvaise réponse     Nouveau score  -2

@+

yoshi
25-04-2024 13:35:49

Bonjour

La discussion en référence est Ici
Avec, randint(a,b), je tire tire aléatoirement un nombre entier entre a et b (eux-mêmes entiers).
Ici 0 correspondra à une mauvaise réponse et 1, à une bonne...
Voici le code fait rapidement :

from random import randint

S,Sa,Comm=0,0,["  Mauvaise réponse    ", "  Bonne Réponse       "]
for ess in range(1,21):
    rep=randint(0,1)
    Sa=S
    if Sa>=0:        
        if rep==1:
            S+=1
        else:
            S=-1
    elif Sa<=0:
        if rep==1:
           S=1
        else:
            S-=1          
    print ("Réponse n°","%2i" % ess, " Ancienne somme","%2i" %Sa,Comm[rep],"Nouvelle Somme ","%2i" %S)
 

Testable (copier/coller le code) sur un site de Python en ligne : https://www.online-python.com/ si vous n'avez pas Python chez vous.

Exemple de Sortie :


Réponse n°  1  Ancienne somme  0   Bonne Réponse        Nouvelle Somme   1
Réponse n°  2  Ancienne somme  1   Mauvaise réponse     Nouvelle Somme  -1
Réponse n°  3  Ancienne somme -1   Mauvaise réponse     Nouvelle Somme  -2
Réponse n°  4  Ancienne somme -2   Mauvaise réponse     Nouvelle Somme  -3
Réponse n°  5  Ancienne somme -3   Mauvaise réponse     Nouvelle Somme  -4
Réponse n°  6  Ancienne somme -4   Mauvaise réponse     Nouvelle Somme  -5
Réponse n°  7  Ancienne somme -5   Mauvaise réponse     Nouvelle Somme  -6
Réponse n°  8  Ancienne somme -6   Bonne Réponse        Nouvelle Somme   1
Réponse n°  9  Ancienne somme  1   Bonne Réponse        Nouvelle Somme   2
Réponse n° 10  Ancienne somme  2   Mauvaise réponse     Nouvelle Somme  -1
Réponse n° 11  Ancienne somme -1   Bonne Réponse        Nouvelle Somme   1
Réponse n° 12  Ancienne somme  1   Mauvaise réponse     Nouvelle Somme  -1
Réponse n° 13  Ancienne somme -1   Bonne Réponse        Nouvelle Somme   1
Réponse n° 14  Ancienne somme  1   Mauvaise réponse     Nouvelle Somme  -1
Réponse n° 15  Ancienne somme -1   Mauvaise réponse     Nouvelle Somme  -2
Réponse n° 16  Ancienne somme -2   Mauvaise réponse     Nouvelle Somme  -3
Réponse n° 17  Ancienne somme -3   Bonne Réponse        Nouvelle Somme   1
Réponse n° 18  Ancienne somme  1   Mauvaise réponse     Nouvelle Somme  -1
Réponse n° 19  Ancienne somme -1   Bonne Réponse        Nouvelle Somme   1
Réponse n° 20  Ancienne somme  1   Mauvaise réponse     Nouvelle Somme  -1

@+

Pied de page des forums