0 / 0 / 0
Регистрация: 26.06.2018
Сообщений: 2
1

Функция записывает значение в память

26.06.2018, 13:22. Показов 829. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые специалисты!

Есть проблема в Python 3.
Написал функцию determinant (вычисление определителя матрицы) и выложил ее в библиотеку lib.
А она вместо того, чтобы выдавать значения при ее вызове пишет значение в память (<function determinant at 0x023867C8>).
Функция использует еще одну сохраненную функцию permuteParity (четность перестановки). C ней проблем нет.
Скрипт до того как быть записанным в функцию определитель считал и печатал.
Что не так с функцией?
Гуглил, ничего полезного для себя не нашел.
Помогите, пожалуйста!

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
def determinant():
#def determinant(a, n, i, factorial, ma, d, C_det,  mult, d_r):
 
    from itertools import permutations
 
    #import permuteparity
    from permuteparity import permuteParity
 
    import csv
 
    a = list(csv.reader(open(r'D:\arsen\python\A.csv'),delimiter=';'))
 
    n=len(a)
        #print('Matrix_A ',n,'x',n)
    
        #for row in a:
        #        print(' '.join([str(elem) for elem in row]))
        #ma=array('i',n)
 
    i=1
    factorial=1
    ma=[]
    while i < n+1:
        ma.append(i)
        i=i+1
        factorial=i*factorial
    factorial=factorial/i
 
        #examp=[6,5,4,3,2,1]
        #print('--examp=',examp,'--examp[0]=',examp[0], '--permuteparity [examp]=',permuteParity(examp))
 
    with open(r'D:\arsen\python\combs.csv', 'w') as C_det:
        c_writer=csv.writer(C_det,delimiter=';')
        #c_writer.writerows(list(permutations(ma, n)+permuteParity(list(permutations(ma, n))))) #print(a_reader.line_num)
        c_writer.writerows(list(permutations(ma, n))) #print(a_reader.line_num) 
    C_det.close
 
    d=list(csv.reader(open(r'D:\arsen\python\combs.csv'),delimiter=';'))
 
 
 
    det=0.0
    for r in range(int(factorial)):
        #for i in range(n-1):
            mult=1.0
            d_r=[]
            for j in range(n):
                #print('i=',j,', j= d_i_j=', int(d[r*2][j])-1) 
                d_r.append(int(d[r*2][j]))
                #print('i=',j,', j= d_i_j=', int(d[r*2][j])-1, ', a_i_j=', a[j][int(d[r*2][j])-1], ', mult=', mult, ', det=', det) 
                mult=mult*float(a[j][int(d[r*2][j])-1])
            #print(d[r*2])
            #print(d_r,  permuteParity(d_r))
            mult=mult*permuteParity(d_r)
            det=det+mult
            #det_fin=det
            #print(permu.index[1])
    #print('--det=',det)
    return det
вот функция permuteParity
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def permuteParity(seq):
    ap = [seq.index(ii+1) for ii in range(len(seq))]
    base = [ii+1 for ii in range(len(seq))]
 
    parity = 1
    cycleList = []
    for startingIndex in base:
        thisCycle = [startingIndex]
        for step in thisCycle:
            if seq[step-1] == startingIndex:
                cycleList.append(thisCycle)
                parity *= (-1)**(len(thisCycle)+1)
            else:
                thisCycle.append(seq[step-1])
                base.remove(seq[step-1])
    
    #return cycleList
    return parity
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2018, 13:22
Ответы с готовыми решениями:

В память процесса WriteProcessMemory записывает только один байт
Есть код, с помощью которого можно писать в память процесса по адресу, но он пишет только первый...

Функция не записывает в файл данные
using System; using System.Collections.Generic; using System.Linq; using System.Text; using...

Функция записывает в 3-й, 4-й и 5-й биты параметра типа byte
Доброго времени суток, помогите пожалуйста с написанием данной программы Функция записывает в 3-й,...

Функция addTextFile неправильно записывает данные в файл
Здраствуйте, проблема с функцией addTextFile, при выборе должно додавать данные в начало / конец...

Не записывает значение в БД
Всем доброго времени суток, не судите меня строго, только начинаю изучать Yii, сделал форму на ней...

3
Эксперт Python
5412 / 3836 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
26.06.2018, 13:38 2
Цитата Сообщение от zamarseny Посмотреть сообщение
выдавать значения при ее вызове пишет значение в память (<function determinant at 0x023867C8>).
И как вы ее импортируете\вызываете?
1
0 / 0 / 0
Регистрация: 26.06.2018
Сообщений: 2
26.06.2018, 14:21  [ТС] 3
действительно, неправильно вызывал.
Писал просто в командной строке determinant.
А надо было determinant().

Большущее спасибо!
0
Эксперт Python
4614 / 2035 / 359
Регистрация: 17.03.2012
Сообщений: 10,102
Записей в блоге: 6
26.06.2018, 16:11 4
Цитата Сообщение от zamarseny Посмотреть сообщение
def determinant():
Это место для ваших параметров.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2018, 16:11
Помогаю со студенческими работами здесь

Не записывает значение в бд
Здравствуйте, есть код &lt;?php require_once '../functions/funct.php'; $id = $_POST; ...

Описать два потока: первый поток записывает данные в буферную память, а второй поток – считывает
Как написать на языке С программу, которая содержит две функции, описывающие два потока? Первый...

Записывает пустое значение
Здравствуйте, проблема такая, в базу отправляет пустое значение. Как с этим бороться. &lt;?php...

функция записывает count элементов типа Complex из массива buffer в файл
Очень нужен код, у меня завал. Помогите поже! Условие: .определить функции в соответствии с...

Функция, которая открывает файл и записывает строки в нужное поле структуры
первый день на форуме, надеюсь правильно задаю вопрос) есть функция, которая открывает файл и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru