Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
joub
1 / 1 / 1
Регистрация: 08.01.2013
Сообщений: 98
#1

Алгоритм сложения точек эллиптической группы на с++ - C++

27.05.2013, 12:49. Просмотров 335. Ответов 0
Метки нет (Все метки)

День добрый всем!
Пытаюсь реализовать алгоритм сложения точек эллиптической группы.

Формулу можно глянуть тут: http://rudocs.exdat.com/docs/index-518356.html?page=15
или тут, если не любите рекламу: Учебное пособие Москва 2008 удк 004. 738 Ббк 32. 973. 202.rar


Вот что у меня получилось по всем изысканиям...
Но не магу разобраться почему не работает...


Если кто столковался - помогите! Может есть другое решение ?

C++
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
struct el
    {
        int x,y;
    };
 
// Если точки разные P+Q
el SubP(el a,el b, int M){
    int chisl, znam, obr, r;
    int lambda;
    int i;
    el ret;
 
    chisl = b.y - a.y;
    znam = b.x - a.x;
    //---------
    for (i = 1; i < M; i++){ 
        obr = (i * znam)%M;
        obr = ( obr >= 0 ) ? obr : -obr;
        if (obr == 1){
            r = i;
            break;
        }
    }
    lambda = (r * chisl)%M;
 
    //---------
    ret.x = ((int)lambda * (int)lambda - a.x - b.x) % M;
    ret.y = ((int)lambda*(a.x - ret.x)-a.y) % M;
    //ret.y = (ret.y >=0)? ret.y: -ret.y;
    return ret;
}
// Если точки одинаковые - 2P
el Sub2P(el al, int a, int M){
    int chisl, znam, obr, r;
    int lambda;
    int xn, yn;
    el ret;
 
    chisl = 3 * al.x * al.x + a;
    znam = 2 * al.y;
    //----------
    for (int i = 1; i < M; i++){ 
        obr = (i * znam)%M;
        obr = ( obr >= 0 ) ? obr : -obr;
        if (obr == 1) {
            r = i;
            //break;
        }
    }
    lambda = (r * chisl)%M;
    //----------
    ret.x = (lambda * lambda - 2*al.x) % M;
    ret.y = ( -al.y + lambda*(al.x - ret.x) ) %M;
    return ret;
}
// Сложение двух точек P+Q
el sub(el al,el bl,int a,int M){
    el ret;
    if( (al.x == bl.x) &(al.y == bl.y)){
        ret = Sub2P(al, a, M);
    }else{
        ret = SubP(al, bl, M);
    }
    return ret;
}
 
// Умножение
el mul(el al,int n,int a,int M){
    int i;
    el ret;
    el tm;
    
    tm = al;
 
    for(i=1; i<n; i++){
        ret = sub(al,tm,a,M);
        tm = ret;
    }
    return ret;
}
Добавлено через 5 минут
Действие if (obr == 1){ не всегда выполнимо в принципе, из-за чего не определено r, и само-собой ошибка при умножении.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 12:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Алгоритм сложения точек эллиптической группы на с++ (C++):

Алгоритм (блок-схема) сложения двух чисел в 2 с/с - C++
Возник ещё один вопрос, как сделать алгоритм (блок-схему) сложения двух чисел в 2 с/с. Заранее благодарен. P.S. Прошу прощения что...

Разработать алгоритм и написать по нему программу сложения матриц А и В размера m × n - C++
Задача 2. Разработать алгоритм и написать по нему программу сложения матриц А и В размера m × n. Значение величин m и n выбрать из табл....

Заменить в строке все группы подряд идущих точек на многоточие - C++
Помогите составить программу по теме &quot;Строки&quot;: Используя функции класса string, заменить в строке все группы подряд идущих точек на...

На плоскости заданы своими целочисленными координатоми n точек. Найти все возможные группы... - C++
решите в Borland C++ на плоскости заданы своими целочисленными координатоми n точек .найти все возможные группы 3,4......точки лежащие...

Алгоритм замыкания точек - C++
Ребята, есть программа , которая сканирует изображение сохраняет и загружает его обратно в виде точек проблема в том , что не могу...

Группировка точек в 3-мерном пространстве. Алгоритм - C++
В пространстве имеется множество точек (~700 000), необходимо разбить эти точки на n групп, в каждой из которых имеется что-то типа главной...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2013, 12:49
Привет! Вот еще темы с ответами:

Алгоритм поиска точек внутри плоской фигуры - C++
Дана плоская фигура, представляющая собой замкнутую кривую из целочисленных точек. Найти все целочисленные точки внутри. Фигура и ее...

Нахождение ближайших точек методом декомпозиции - не понятен алгоритм - C++
Преподаватель задал решить задачу по нахождению ближайших точек методом декомпозиции, но мне не понятен алгоритм, гугл не дал мне...

Какая из точек находится ближе к началу координат: составить алгоритм - C++
Даны две точки А(х1, у1) и В(х2, у2). Составить алгоритм (ГРАФИЧЕСКОЕ ОПИСАНИЕ !!!!!!!!!!!!!!) для определения, какая из точек находится...

Как задать движение фигуры по эллиптической траектории - C++
По заданию необходимо создать эллипс и его движение по эллиптической траектории. С эллипсом я разобрался. А как ему задать движение?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru