Script OGR
#!/usr/bin/python
# -*-coding:Utf-8 -*
# Vérifie si l'ensemble des nombres passés en paramètre vérifie la règle de Golomb
# exemple:
# python golomb.py 0 1 3 6 ...
# renvoie "not optimal", "optimal" ou "perfect"
import sys
liste = []
for i in sys.argv:
try:
t = int(i)
liste.append(t)
except ValueError:
pass
calcul = []
for i in range(0, len(liste)):
for j in range(i+1, len(liste)):
c = liste[j] - liste[i]
calcul.append(c)
calcul.sort()
last = calcul[-1]
has_duplicate = 0
for i in range(len(calcul)-2, -1, -1):
if last == calcul[i]:
has_duplicate = 1
last = calcul[i]
if has_duplicate:
print "not optimal"
else:
if len(calcul) == calcul[-1]:
print "perfect"
else:
print "optimal"
retour