Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
provo
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 12
#1

Сравнить два массива и запомнить номер первых двух совпавших элементов - C++

28.03.2013, 17:18. Просмотров 1130. Ответов 4
Метки нет (Все метки)

нужно сравнить два массива,например 1:23,19,26,18,22,11 и запомнить номер первых двух совпавших элементов...
2:18,25,78
также как вычислить в m и k корень




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
#include <iostream>
#include <math.h>
#include <stdlib.h>
 
 
using namespace std;
 
long long powmod (long long a, long long x, long long p)
{
  long long b=1;
  while (x>0) {
    if (x%2==0) {
      x /= 2;
      a = (a*a)%p; 
      }
    else {
      x--;
      b = (b*a)%p; 
      }
  }
  return b;
}
 
int main()
{
    long long a, p, y;
    long double m,k;
    cout<<"Example of the equation (a^x)mod p=y\n";
    cout <<"Enter a:";    
    cin >> a;        
    cout <<"Enter p:";
    cin >> p;
    cout <<"Enter y:";
    cin >> y;
      
    m = sqrt(p)+1;    
    k = sqrt(p)+1;
 
    long long *baby_step = new long long[m];
    long long *giant_step = new long long[k];
    long long *x = new long long[p];
 
    //шаг младенца
    for (int i = 0; i<=(m-1); i++)
    {
        baby_step[i]=((y%p)*powmod(a, i, p))%p;
        cout <<baby_step[i]<<" ";
    }
    cout << endl;
    
    //шаг великана
    for (int j = 1; j<=k; j++)
    {
        giant_step[j]=powmod(a,j*m,p);
        cout << giant_step[j] << " " ;
    }
 
    for(int i=0; i<=(m-1); i++)
    {
    for(int j=1; j<=k; j++)
        {   if(baby_step[i]==giant_step[j]) cout<<baby_step[i]; cout<<"\n";
        }
    }
 
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2013, 17:18     Сравнить два массива и запомнить номер первых двух совпавших элементов
Посмотрите здесь:

Заданы два массива. Сравнить соответствующие элементы массивов и вывести на экран массив, состоящий из совпавших элементов. - C++
Помогите пожалуйста решить пару задач :3 Заданы два массива целых чисел одинаковой размерности. Сравнить соответствующие элементы...

Вывести номера совпавших элементов двух массивов - C++
Заданы два массива целых чисел одинаковой размерности. Сравнить их соответствующие элементы и вывести на экран номера совпавших элементов.

Даны два массива. Найти среднее арифметическое элементов каждого и сравнить эти значения - C++
Даны два массива. Найти среднее арифметическое элементов каждого и сравнить эти значения

В элементы третьего массива записать сумму соответствующих элементов первых двух массивов - C++
Добрый вечер. Даны три массива размерности 17. Первые два заполнить случайными значениями от 10 до 30. Вывести массивы на экран. В...

Вывести на экран элементы массива, сумма первых двух цифр равна сумме двух последних - C++
//Массив из n четырехзначных натуральных чисел. //Вывести па экран только те, у которых сумма первых двух цифр равна сумме двух...

Сравнить два массива - C++
Подскажите пожалуйста как решить задачу: Нужно сравнить два массива, проверить все элементы на совпадение и если они совпадают то вывести...

Как сравнить два массива - C++
Здравствуйте форумчане! Помогите пожалуйста, скажите как сравнить два массива побитово и побайтово. В инете ни чего не могу найти((

Сравнить логически два массива - C++
Сравнить , используя логическое или(||) два одномерных массива (А и В) и записать результат в массив С Массивы создал , но не знаю как...

Сравнить два массива, заданных классами - C++
Имеется class array и class array2. В них описаны массивы. И два метода, заполняющие их. Нужно сравнить два этих массива (Вывести...

Сравнить два массива одинаковой длины - C++
Сравниваю два массива длиной три. Сравнивать нужно с конца. #include &lt;iostream&gt; using namespace std; int main (){ int array; ...

Как запомнить индексы равных элементов массива? - C++
Произвожу поиск максимального или минимального элемента массива, типа такого: int max = B; for(int i=1;i&lt;N;i++) { if(B&gt;max) ...

Как сравнить два элемента массива типа string? - C++
Задание. Вычислить какая компания чаще всего участвовала в роли истца. У меня есть массив в котором хранятся названия компаний ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
eocron
Кактус
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
28.03.2013, 17:31     Сравнить два массива и запомнить номер первых двух совпавших элементов #2
Пожалуйста, сформулируйте задачу в соответствии с правилами русского языка. Невозможно читать и понять, что нужно сделать после нахождения этих элементов. Код заключите в теги.
provo
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 12
28.03.2013, 17:56  [ТС]     Сравнить два массива и запомнить номер первых двух совпавших элементов #3
Цитата Сообщение от eocron Посмотреть сообщение
Пожалуйста, сформулируйте задачу в соответствии с правилами русского языка. Невозможно читать и понять, что нужно сделать после нахождения этих элементов. Код заключите в теги.
требуется сравнить элементы двух массивов....и запомнить номера этих чисел в переменных(найти только первые одинаковые элементы,например 1 массив:12,25,26,13...2 массив:12,26,89, одинаковые элементы первые 12...их номера 0 и 1)

Добавлено через 8 минут
.................................

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
#include <iostream>
#include <math.h>
#include <stdlib.h>
 
 
using namespace std;
 
long long powmod (long long a, long long x, long long p)
{
long long b=1;
while (x>0) {
if (x%2==0) {
x /= 2;
a = (a*a)%p; 
}
else {
x--;
b = (b*a)%p; 
}
}
return b;
}
 
int main()
{
long long a, p, y;
long double m,k;
cout<<"Example of the equation (a^x)mod p=y\n";
cout <<"Enter a:"; 
cin >> a; 
cout <<"Enter p:";
cin >> p;
cout <<"Enter y:";
cin >> y;
 
m = sqrt(p)+1; 
k = sqrt(p)+1;
 
long long *baby_step = new long long[m];
long long *giant_step = new long long[k];
long long *x = new long long[p];
 
//шаг младенца
for (int i = 0; i<=(m-1); i++)
{
baby_step[i]=((y%p)*powmod(a, i, p))%p;
cout <<baby_step[i]<<" ";
}
cout << endl;
 
//шаг великана
for (int j = 1; j<=k; j++)
{
giant_step[j]=powmod(a,j*m,p);
cout << giant_step[j] << " " ;
}
 
for(int i=0; i<=(m-1); i++)
{
for(int j=1; j<=k; j++)
{ if(baby_step[i]==giant_step[j]) cout<<baby_step[i]; cout<<"\n";
}
}
 
system("pause");
}
eocron
Кактус
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
28.03.2013, 18:02     Сравнить два массива и запомнить номер первых двух совпавших элементов #4
Насколько я вижу там всего один элемент и его номер 0. Где вы нашли 1 я не пойму. Поясните.
provo
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 12
28.03.2013, 22:34  [ТС]     Сравнить два массива и запомнить номер первых двух совпавших элементов #5
Цитата Сообщение от eocron Посмотреть сообщение
Насколько я вижу там всего один элемент и его номер 0. Где вы нашли 1 я не пойму. Поясните.
шаг младенца-это первый массив...у него нумерация с нуля..
шаг великана-это второй массив...у него нумерация с единицы..
Yandex
Объявления
28.03.2013, 22:34     Сравнить два массива и запомнить номер первых двух совпавших элементов
Ответ Создать тему
Опции темы

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