Commit bd29a017 authored by Tom MARRUCCI's avatar Tom MARRUCCI
Browse files

Deplacement des stats de stats vers algo

parent 55748eca
......@@ -33,7 +33,7 @@ from sys import argv
from Cube import Cube
from lire_entree import lecture_cube
from utils import croix_valide, ftl_valide, cfop_valide
from stats import moyenne, ecart_type
from stats import *
from utils import croix_valide, ftl_valide, cfop_valide, replace_sublist
SHORTCUTS = "shortcuts.json"
......@@ -1630,6 +1630,7 @@ if __name__ == '__main__':
TermColors.end + '\n'
)
#Tests insolvabilité
#Voir http://jeays.net/rubiks.htm#unsolvable
......@@ -1649,4 +1650,24 @@ if __name__ == '__main__':
assert(not err)
err, _ = algo_cfop(c)
print(TermColors.bgGreen + "Insolvable" + TermColors.end, c.to_line())
\ No newline at end of file
print(TermColors.bgGreen + "Insolvable" + TermColors.end, c.to_line())
### RESOLUTION ALGO AVEC LA MÉTHODE ALGO_CFOP(C) ###
print("Statistique avec la méthode algo_cfop() sur 11400 cubes")
print("Please wait...")
jeu_test = 'tests/samples/sample-600.json'
with open(jeu_test) as data_file: #on parse le jeu de test JSON
data = json.load(data_file)
tests = data["cubes"]
listeNbMouvements = [] # liste des longueurs de mouvements
for test in tests: # on parcours tout les cubes
b,c = lecture_cube(test)
c,mouv = algo_cfop(c) # on fais l'algo
if len(mouv) not in listeNbMouvements:
listeNbMouvements.append(len(mouv))
print("☞ Nombre de mouvement minimum : "+str(min(listeNbMouvements)))
print("☞ Nombre de mouvement maximum : "+str(max(listeNbMouvements)))
print("☞ Moyenne : "+str(moyenne(listeNbMouvements)))
print("☞ Médiane : "+str(mediane(listeNbMouvements)))
print("☞ Écart-type : "+str(ecart_type(listeNbMouvements)))
\ No newline at end of file
import json
from math import sqrt,fabs
from Cube import *
from lire_entree import lecture_cube
from algo import algo_cfop
import statistics
def moyenne(liste):
moyenne = 0
......@@ -33,24 +29,4 @@ def mediane(liste):
if len(liste)%2==0:
return moyenne([liste[int((len(liste)/2)-1)],liste[int(len(liste)/2)]])
else:
return liste[int(len(liste)/2).__round__(2)]
def getOccurencesTests(jeu_test):
with open(jeu_test) as data_file: #on parse le jeu de test JSON
data = json.load(data_file)
tests = data["cubes"]
listeNbMouvements = [] # dictionnaire pour stocké en clé : nbMouvement et en valeur : Occurence sur les n tests
for test in tests: # on parcours tout les cubes
b,c = lecture_cube(test)
c,mouv = algo_cfop(c) # on fais l'algo
if len(mouv) not in listeNbMouvements:
listeNbMouvements.append(len(mouv))
return listeNbMouvements
listeNbMouvements = getOccurencesTests('tests/samples/sample-600.json')
print("Nombre de mouvement minimum : "+str(min(listeNbMouvements)))
print("Nombre de mouvement maximum : "+str(max(listeNbMouvements)))
print("Moyenne : "+str(moyenne(listeNbMouvements)))
print("Médiane : "+str(mediane(listeNbMouvements)))
print("Écart-type : "+str(ecart_type(listeNbMouvements)))
\ No newline at end of file
return liste[int(len(liste)/2).__round__(2)]
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment