Havel-Hakimi

El código está en catalán pero es autoexplicativo.

def comprova(nodes):
    if sum(nodes) % 2 != 0:
      print 'la suma se graus no es parell'
      return 0
    if max(nodes) > len(nodes)-1:
      print 'hi ha un node de grau mes gran que el total de nodes'
      return 0
    if min(nodes) < 0:
      print 'hi ha un node de grau negatiu'
      return 0
    if max(nodes) == 0:
      print 'es un graf correcte'
      return 0
    return 1

# mostra de Butà un hidrocarbó amb fórmula C4H10
nodes = [4,4,4,4,1,1,1,1,1,1,1,1,1,1]
# mostra d'una definició de graf incorrecte
# nodes = [6,5,5,5,5,2,1,1]

while (comprova(nodes)):
  print nodes
  nodes2 = list(nodes)
  nodes.sort()
  nodes.reverse()
  if nodes!=nodes2: print str(nodes) + " ordenat"
  node = nodes.pop(0)
  for i in range(node):
    nodes[i]=nodes[i]-1
print nodes
def comprova(nodes):
if sum(nodes) % 2 != 0:
print ‘la suma se graus no es parell’
return 0
if max(nodes) > len(nodes)-1:
print ‘hi ha un node de grau mes gran que el total de nodes’
return 0
if min(nodes) < 0:
print ‘hi ha un node de grau negatiu’
return 0
if max(nodes) == 0:
print ‘es un graf correcte’
return 0
return 1

nodes = [7,5,4,3,2,2,2]
nodes = [7,6,5,4,4,3,2,1]
nodes = [5,5,3,2,2,1,1]
nodes = [4,3,2,2,2,2,1]
nodes = [6,5,5,5,5,2,1,1]
nodes = [4,4,4,4,1,1,1,1,1,1,1,1,1,1]
while (comprova(nodes)):
print nodes
nodes2 = list(nodes)
nodes.sort()
nodes.reverse()
if nodes!=nodes2: print str(nodes) + ” ordenat”
node = nodes.pop(0)
for i in range(node):
nodes[i]=nodes[i]-1
print nodes

Una respuesta a “ Havel-Hakimi ”

  1. Marc codera escribe:

    Oh! Havel-Hakimi!!! Ni me’n recordava!!! De fet, ja ni me’n recordo xD Molt gran Josep!

Dejar una respuesta.

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-Spam Image