Форум сайта python.su
# -*- coding: cp1251 -*- import numpy as np import time print 'Матрица смежности' m = np.loadtxt("input_file.txt", dtype='int') i=1 j=len(m) # Подсчет размерности матрице for element in m: # Цикл подсчета локальных вершин if i<=j-1: m[i,j]=np.sum(m[i,1:]) i = i+1 print m print np.amax(m[1:,j]) # Значение максимальной лок. вершины. i=0 maxt=np.amax(m[1:,j]) print maxt for element in m: # Цикл подсчета номера строки с макс элементом if m[i,j]== maxt: i else: i= i+1 dr1=i print dr1 # Вычисление 2 элемента m = np.loadtxt("input_file.txt", dtype=np.float) i=1 j=len(m) # Подсчет размерности матрице for element in m: # Цикл подсчета локальных вершин if i<=j-1: m[i,j]=np.sum(m[i,1:]) i = i+1 i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) sk=np.array( [ m[12,j]/m[i,19] ]) maxt=np.amax([ m[12,j]/m[i,19] ]) j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr2=j+1 print dr2 #Вычисление 3 элемента i=np.array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14 ,15, 16, 17, 18]) j=np.array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14 ,15, 16, 17, 18]) #m1=np.delete(m, [11,12], 1) sk=np.array( [ (m[dr1,j]+m[dr2,j])/m[i,19] ]) maxt=np.amax([ (m[dr1,j]+m[dr2,j])/m[i,19] ]) j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr3=j+1 print dr3 #Вычисление 4 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) i=np.delete(i, [8,10,11], 0) j=np.delete(j, [8,10,11], 0) sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j])/m[i,19] ]) maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j])/m[i,19] ]) j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr4=j+1 print dr4 #print m[i, 19] #Вычисление 5 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,7]=0 m[i,9]=0 m[i,11]=0 m[i,12]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j])/m[i,19] ]) maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j])/m[i,19] ]) j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr5=j+1 print dr5 #Вычисление 6 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,7]=0 m[i,9]=0 m[i,11]=0 m[i,12]=0 m[i,8]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j])/m[i,19] ]) #print [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j])/m[i,19] ] maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j])/m[i,19] ]) #print maxt j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr6=j+1 print dr6 #Вычисление 7 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,dr1]=0 m[i,dr2]=0 m[i,dr3]=0 m[i,dr4]=0 m[i,dr5]=0 m[i,dr6]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j])/m[i,19] ]) #print [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j])/m[i,19] ] maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j])/m[i,19] ]) #print maxt j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr7=j+1 print dr7 #Вычисление 8 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,dr1]=0 m[i,dr2]=0 m[i,dr3]=0 m[i,dr4]=0 m[i,dr5]=0 m[i,dr6]=0 m[i,dr7]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j])/m[i,19] ]) #print [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j])/m[i,19] ] maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j])/m[i,19] ]) #print maxt j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr8=j+1 print dr8 #Вычисление 9 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,dr1]=0 m[i,dr2]=0 m[i,dr3]=0 m[i,dr4]=0 m[i,dr5]=0 m[i,dr6]=0 m[i,dr7]=0 m[i,dr8]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j])/m[i,19] ]) #print [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j])/m[i,19] ] maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j])/m[i,19] ]) #print maxt j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr9=j+1 print dr9 #Вычисление 10 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,dr1]=0 m[i,dr2]=0 m[i,dr3]=0 m[i,dr4]=0 m[i,dr5]=0 m[i,dr6]=0 m[i,dr7]=0 m[i,dr8]=0 m[i,dr9]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j])/m[i,19] ]) #print [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j])/m[i,19] ] maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j])/m[i,19] ]) #print maxt j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr10=j+1 print dr10 #Вычисление 11 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,dr1]=0 m[i,dr2]=0 m[i,dr3]=0 m[i,dr4]=0 m[i,dr5]=0 m[i,dr6]=0 m[i,dr7]=0 m[i,dr8]=0 m[i,dr9]=0 m[i,dr10]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j])/m[i,19] ]) #print [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j])/m[i,19] ] maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j])/m[i,19] ]) #print maxt j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr11=j+1 print dr11 #Вычисление 12 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,dr1]=0 m[i,dr2]=0 m[i,dr3]=0 m[i,dr4]=0 m[i,dr5]=0 m[i,dr6]=0 m[i,dr7]=0 m[i,dr8]=0 m[i,dr9]=0 m[i,dr10]=0 m[i,dr11]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j])/m[i,19] ]) #print [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j])/m[i,19] ] maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j])/m[i,19] ]) #print maxt j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr12=j+1 print dr12 #Вычисление 13 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,dr1]=0 m[i,dr2]=0 m[i,dr3]=0 m[i,dr4]=0 m[i,dr5]=0 m[i,dr6]=0 m[i,dr7]=0 m[i,dr8]=0 m[i,dr9]=0 m[i,dr10]=0 m[i,dr11]=0 m[i,dr12]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j]+m[dr12,j])/m[i,19] ]) #print (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j]+m[dr12,j]) maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j]+m[dr12,j])/m[i,19] ]) #print maxt j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr13=j+1 print dr13 #Вычисление 14 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,dr1]=0 m[i,dr2]=0 m[i,dr3]=0 m[i,dr4]=0 m[i,dr5]=0 m[i,dr6]=0 m[i,dr7]=0 m[i,dr8]=0 m[i,dr9]=0 m[i,dr10]=0 m[i,dr11]=0 m[i,dr12]=0 m[i,dr13]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j]+m[dr12,j]+m[dr13,j])/m[i,19] ]) #print [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j])/m[i,19] ] maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j]+m[dr12,j]+m[dr13,j])/m[i,19] ]) #print maxt j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr14=j+1 print dr14 #Вычисление 15 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,dr1]=0 m[i,dr2]=0 m[i,dr3]=0 m[i,dr4]=0 m[i,dr5]=0 m[i,dr6]=0 m[i,dr7]=0 m[i,dr8]=0 m[i,dr9]=0 m[i,dr10]=0 m[i,dr11]=0 m[i,dr12]=0 m[i,dr13]=0 m[i,dr14]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j]+m[dr12,j]+m[dr13,j]+m[dr14,j])/m[i,19] ]) #print [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j])/m[i,19] ] maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j]+m[dr12,j]+m[dr13,j]+m[dr14,j])/m[i,19] ]) #print maxt j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr15=j+1 print dr15 #Вычисление 16 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,dr1]=0 m[i,dr2]=0 m[i,dr3]=0 m[i,dr4]=0 m[i,dr5]=0 m[i,dr6]=0 m[i,dr7]=0 m[i,dr8]=0 m[i,dr9]=0 m[i,dr10]=0 m[i,dr11]=0 m[i,dr12]=0 m[i,dr13]=0 m[i,dr14]=0 m[i,dr15]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j]+m[dr12,j]+m[dr13,j]+m[dr14,j]+m[dr15,j])/m[i,19] ]) #print [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j])/m[i,19] ] maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j]+m[dr12,j]+m[dr13,j]+m[dr14,j]+m[dr15,j])/m[i,19] ]) #print maxt j=0 for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 dr16=j+1 print dr16 #Вычисление 17 элемента i=np.arange( 1, 19, 1 ) j=np.arange( 1, 19, 1 ) m[i,dr1]=0 m[i,dr2]=0 m[i,dr3]=0 m[i,dr4]=0 m[i,dr5]=0 m[i,dr6]=0 m[i,dr7]=0 m[i,dr8]=0 m[i,dr9]=0 m[i,dr10]=0 m[i,dr11]=0 m[i,dr12]=0 m[i,dr13]=0 m[i,dr14]=0 m[i,dr15]=0 m[i,dr16]=0 sk=np.array( [ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j]+m[dr12,j]+m[dr13,j]+m[dr14,j]+m[dr15,j]+m[dr16,j])/m[i,19] ]) #print sk maxt=np.amax([ (m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j]+m[dr5,j]+m[dr6,j]+m[dr7,j]+m[dr8,j]+m[dr9,j]+m[dr10,j]+m[dr11,j]+m[dr12,j]+m[dr13,j]+m[dr14,j]+m[dr15,j]+m[dr16,j])/m[i,19] ]) #print maxt j=0 i=np.arange( 0, 17, 1 ) k=np.delete(i, [0,dr1,dr2,dr3,dr4,dr5,dr6,dr7,dr8,dr9,dr10,dr11,dr12,dr13,dr14,dr15,dr16], 0) for element in sk[0,1:]: # Цикл подсчета номера строки с макс элементом if sk[0,j]== maxt: j else: j= j+1 if maxt==0: print k[0] print k[1] i=np.array([[dr1,dr2,dr3,dr4,dr5,dr6], [dr7,dr8,dr9,dr10,dr11,dr12], [dr13,dr14,dr15,dr16, k[0], k[1]]]) print 'Размещение элементов на плате' print i
Отредактировано Kaz_chok (Ноя. 30, 2013 16:40:30)
Прикреплённый файлы:
input_file.txt (959 байт)
Офлайн
O mein gott!
А напишите пожалуйста условие задачи. Тобишь, что вам нужно сделать вообще.
Офлайн
Задание, Алгоритм, и ручной счет прикреплен к файлу. (так проще).P.S. Python 2.7
Прикреплённый файлы:
Размещение.doc (785,0 KБ)
Офлайн
Мдя…. серьёзно, надо голову поломать чутка )
По крайней мере, те длинные суммы можно запихнуть в функцию
(m[dr1,j]+m[dr2,j]+m[dr3,j]+m[dr4,j])
Офлайн
Я вообще программировать не умел до этого, сам удивился, как такое получилось. Но я знаю, что можно организовать функцию и запускать ее в цикле. Чтобы не писать этот бред по отдельности с 1го по 18й. Но знаний не хватает и пока ничего придумать не могу.
Офлайн
Kaz_chok
ты хоть по питону туториал прочитай
или попробуй понять как работает следующий код
# определения функции def add2(arg1,arg2): result = arg1 + arg2 return result # как использовать answer = add(2,7) print answer # напечатает 9
Отредактировано Singularity (Дек. 1, 2013 21:14:44)
Офлайн
Master_SergiusНе, там необходимо что бы каждый раз сумма по новой считалась. Предыдущие посчитаны заново + еще добавлялся новый полученный на предыдущем этапе. Я думаю может организовать что то вроде списка. Те элементы которые не получены первоначально обнулить, а те которые будут появляться им присваивать значения. Но со списком проблемы. Скажите как организовать элементы dr1….dr(n) и присвоить всем им значение 0.
Мдя…. серьёзно, надо голову поломать чутка )По крайней мере, те длинные суммы можно запихнуть в функцию
Офлайн
SingularityТут такой фокус не пройдет. Необходимо производить расчеты с 1го элемента по 18 каждый раз. Иначе нарушается порядок. Если же посчитать элементы на предыдущем цикле и просто прибавить новый полученный к предыдущей сумме. ТО ничего путного не получится.
Kaz_chokты хоть по питону туториал прочитайили попробуй понять как работает следующий код
Офлайн
Если вы мне предоставите формулы и алгоритм понятней, чем описано в том файле, возможно, смогу помочь.
Kaz_chok
Скажите как организовать элементы dr1….dr(n) и присвоить всем им значение 0.
dr_list = [0 for i in range(n)]
Отредактировано Master_Sergius (Дек. 6, 2013 23:18:59)
Офлайн
Master_Sergius,
dr_list = [0] * n
Офлайн