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

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

Войти
Регистрация
Восстановить пароль
 
Kawar
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 14
#1

Массивы,генератор псевдослучайных чисел. - C++

26.03.2012, 21:52. Просмотров 610. Ответов 4
Метки нет (Все метки)

Всем привет,помогите разобраться с 2 задачами.
1) Дана последовательность из n вещественных чисел. Найти наиболее длинную подследовательность из подряд идущих нулей.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{ double *a, k; int ps0(0),s(0);
cout<<"vvedite razmernost masiva";
cin>>k;
randomize();
a=new double [k];
    for (int i=0; i<k; i++)
              a[i]=random(100);
for (int i(0),m=0; i<k; i++)
{
    if (a[i]==0) m++;
    else m=0;
    if (ps0<m) ps0=m;;
}
      while (s<=ps0)
{
        cout<<0;
        s++;
}
 delete[]a;
getch();
 
        return 0;
}
выводит постоянно пс из одного нуля.

2) Для квадратной вещественной матрицы A размером n найти скалярное произведение строки, в которой находится наибольший элемент матрицы, на столбец с наименьшим элементом.

Добавлено через 1 час 5 минут
..up.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2012, 21:52     Массивы,генератор псевдослучайных чисел.
Посмотрите здесь:

Генератор псевдослучайных чисел - C++
Народ, помогите плиз с решением этой задачи. Мне надо управляемый генератор равновесных псевдослучайных парных наборов.. Вот просто...

Генератор псевдослучайных чисел - C++
Данный генератор работает по конгруэнтному методу, формула X_{n} = ( a X_{n-1}^3 + b X_{n-1}^2 + c X_{n-1} + d )\mod 2^e. При...

Генератор псевдослучайных чисел - C++
Написать генератор псевдослучайных чисел по алгоритму r = r * 4231 + 123457; Подсчитать частоты попадания в каждый из интервалов длиной...

Генератор псевдослучайных чисел - C++
Всем привет. Как такое &quot;чудо&quot; пишеться, примерный алгоритм, если можно на псевдокоде: Написать генератор псевдослучайных чисел по...

Генератор псевдослучайных чисел. - C++
Здраствуйте. Мне нужно сделать вот что &quot;Написать генератор псевдослучайных чисел по алгоритму r = r * 4231 + 123457; Подсчитать частоты...

генератор псевдослучайных чисел... - C++
Вот програмулька генерирующая псевдослучайные числа создавалась по алгоритму X(n+1)=a*X(n)+c*(mod M) кто может подсказать как выводить...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raikerian
9 / 9 / 1
Регистрация: 10.05.2011
Сообщений: 101
26.03.2012, 23:46     Массивы,генератор псевдослучайных чисел. #2
Для генерации случайных чисел подключайте библиотеки stdlib.h и time.h
Затем в начале функции main для включения генерации неповторяющейся следует написать srand(time(NULL));
сама генерация в промежутке [x;y]:
rand()%(y-x+1)+x
MrCold
854 / 752 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
26.03.2012, 23:53     Массивы,генератор псевдослучайных чисел. #3
Raikerian, у ТС код на Builder
Raikerian
9 / 9 / 1
Регистрация: 10.05.2011
Сообщений: 101
26.03.2012, 23:55     Массивы,генератор псевдослучайных чисел. #4
Цитата Сообщение от MrCold Посмотреть сообщение
Raikerian, у ТС код на Builder
Ну тогда не знаю)

Вот если что вторая задача на C++. Думаю по алгоритму не сложно на билдер переделать:
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "");
    srand(time(NULL));
    int n;
    cout << "Введите n: ";
    cin >> n;
    int A[100][100],
        min = 100,
        max = 0,
        kmin, kmax,
        i, j;
    cout << "\nИсходный массив:" << endl;
    for (i=0; i<n; ++i)
    {
        for (j=0; j<n; ++j)
        {
            A[i][j]=rand()%20-6;
            // Находим наименьший элемент и его столбец (номер)
            if (A[i][j]<min)
            {
                min = A[i][j];
                kmin=j;
            }
            // Находим наибольший элемент и его строку (номер)
            if (A[i][j]>max)
            {
                max = A[i][j];
                kmax=i;
            }
            // Выводим массив на экран
            cout << A[i][j] << "\t";
        }
        cout << endl << endl;
    }
    // Находим скалярное произведение строки, в которой находится наибольший элемент матрицы, на столбец с наименьшим элементом
    int scal = 0;
    for (i=0; i<n; ++i)
        scal += A[kmax][i]*A[i][kmin];
    cout << "\nОтвет:" << endl
         << "Скалярное произведение = " << scal << endl;
    // Задержка экрана
    cin.sync();
    cin.get();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2012, 00:56     Массивы,генератор псевдослучайных чисел.
Еще ссылки по теме:

Генератор псевдослучайных чисел (иллюзия?) - C++
Пусть есть какое-либо событие и оно может быть либо удачным, либо не удачным. Есть последовательность таких событий. Нам важно только...

Генератор псевдослучайных чисел - проблема. - C++
Очень нужно написать программу-генератор псевдослучайных чисел на языке С. Насколько я понимаю должна использоваться функция rand, но она...

Генератор псевдослучайных чисел Парка-Миллера - C++
Здравствуйте! Как мне решить данную задачу? Минимальный генератор Парка- Миллера Простейшая последовательность , которую можно...

Нужно построить генератор псевдослучайных чисел! - C++
Кто может помочь построить генератор псевдослучайных последовательностей(чисел), использующего разложения алгебраических чисел. очень...


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

Или воспользуйтесь поиском по форуму:
Kawar
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 14
28.03.2012, 00:56  [ТС]     Массивы,генератор псевдослучайных чисел. #5
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
{int **a,nmax,nmin,scal(0);
randomize();
int n;
cout<<"zadaite razmernost";
cin >>n;
a=new int* [n];
for(int i=0; i<n; i++)
        a[i]=new int[n];
        for(int i=0; i<n; i++)
           {
           for(int max(0),min(100),j=0; j<n; j++)
             {
               a[i][j]=random(5);
        //находим максмиальный элемент строки и запоминаем номер этой строки
                if (a[i][j]>max)
                     {
                      max= a[i][j];
                      nmax=i;
                     }
        //находим минимальный номер столбца и запрминаем номер этого столбца
                if (a[i][j]<min)
                     {
                     min=a[i][j];
                     nmin=j;
                     }
                     cout << a[i][j]<<"\t";
             }
               cout<<"\n";
            }
               for(int i=0; i<n; i++)
               {
                      for(int j=0; j<n; j++)
                      scal=scal+a[nmax][j]*a[j][nmin];
               }
 
                     cout<<"skalzrnoe proizvedenie= "<<scal<<"\n";;
             cout<<"nmin"<<nmin<<"\n"<<"nmax"<<nmax;
             delete[] a;
        getch();
 
 
 
        return 0;
}
Написал вторую задачу,но при проверке на калькуляторе не сходится ответ с тем что выдает программа,может кто нибудь проверить-ошибка в коде или это уже я лажаю с калькулятором?
Yandex
Объявления
28.03.2012, 00:56     Массивы,генератор псевдослучайных чисел.
Ответ Создать тему
Опции темы

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