2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Алгоритм Дейкстра на Python
Сообщение29.09.2012, 14:09 
Задача
Не сдаётся. Пишет: "Ошибка во время выполнения программы". Думаю, проблема в вводе.

Я - новичок в питоне. Принципиально сдать на нём, т.к тренируюсь.

Мой код:

код: [ скачать ] [ спрятать ]
Используется синтаксис Python
#!/usr/bin/python
# -*- coding: utf8 -*-

import Queue
t = map(int,raw_input().split())
n = t[0]
b = t[1] - 1
e = t[2] - 1
g = []
INF = 10**10
for i in range(n):
  v = map(int,raw_input().split())
  g.append(v)
  v = []
d = [INF for i in range(n)]
d[0] = 0
p = [0 for i in range(n)]
q = Queue.Queue()
q.put(b)
while q.empty() == 0:
  x = q.get()
  for i in range(n):
    if g[x][i] > 0 and d[x] + g[x][i] < d[i]:
      d[i] = d[x] + g[x][i]
      p[i] = x+1
      q.put(i)
w = []
y = e
if(p[y] != 0):
  while y != b:
    w.append(p[y])
    y = p[y]-1
  w.reverse()
  for i in range(len(w)):
    print w[i]
  print e+1
else:
  print -1

 
 
 
 Re: Алгоритм Дейкстра на Python
Сообщение04.10.2012, 16:00 
Я в Python тоже новичок. Первые операторы до цикла for прошел в интерактивном режиме. Попутно выводил промежуточные результаты. Странностей не было. Может вам поможет цитата из електронного учебника
Цитата:
Следует заметить, что есть разница между ‘python file’ и ‘python < file’. В
последнем случае, запросы на ввод, такие как input() и raw_input() будут удовле-
творяться из файла. Так как файл уже будет прочитан, прежде чем программа начнет исполняться, программа немедленно получит EOF. В первом же случае (который Вам обычно и будет нужен), ввод осуществляется из устройства, с которым соединен стандартный ввод интерпретатора Python.

Имхо, для отладки, можно задавать нужные значения не из стандартного ввода а задавать программно. Еще раз повторяю: я в Python тоже новичок. С уважением,

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group