Le compte est bon (H.Bouia)

Contenu du snippet

#Voici la solution au problème de \"Le compte est bon\" du jeu célèbre de France2
# Code en PYTHON : pas le plus efficace mais l\'un des moins coûteux en codage :

import numpy as np,time
def donne(n):return [np.random.choice([i for i in 2*range(1,11)]+[25,50,75,100]) \\
for i in range(n)],np.random.randint(101,1000,1)[0]
def operat(a,b): return [a+b,a-b,0 if b<2 else a*b,0 if (b<2 or a%b!=0) else a/b]
def solution(u,n,res):
global codeA,resA,oK
if n>1 and oK:
for i,j in [(u[i],u[j]) for i in range(n-1) for j in range(i+1,n)]:
a,b=max(i,j),min(i,j)
for k,rk in enumerate(operat(a,b)):
if rk>0 and oK:
res1=res+\"%d %s %d = %d\\n\" % (a,cop[k],b,rk)
if abs(rk-code)<abs(codeA-code):
codeA,resA=rk,res1
if rk==code: oK=False
if oK: print u0,code,\"\\n\",res1
u1=u[:]
u1.remove(a)
u1.remove(b)
u1=[rk]+u1
solution(u1,n-1,res1)
u,code=donne(6)
u0,cop,t0=u[:],\"+ - x /\".split(\" \"),time.clock()
codeA,resA,oK=0,\"\",True
solution(u,6,\"\")
sol=\"_/_/_/ Solution \"+ (\"proche\" if codeA!=code else \"exacte\")+\" trouvee _/_/_/\\n\"
print \"\\nJeu : \",u0,code,\"\\n\",resA,sol,\"\\nTemps CPU %.5f sec.\\n\" % float(time.clock()-t0)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.