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

Зачем нужно умножение на единицу

28.05.2019, 14:44. Показов 1197. Ответов 1
Метки нет (Все метки)

Всем привет, писал программу для решения систем линейных уравнений методом Гаусса.

Нашёл вот такой код:

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
void PryamoiHod(int n, double **a, double *b)
{
    double v;
    for (int k = 0, i, j, im; k < n - 1; k++)
    {
        im = k;
        for (i = k + 1; i < n; i++)//Ищем наименьший элемент в столбце
        {
            if (fabs(a[im][k]) < fabs(a[i][k]))
            {
                im = i;
            }
        }
        if (im != k)
        {
            for (j = 0; j < n; j++) //Меняем местами строчки
            {
                v = a[im][j];
                a[im][j] = a[k][j];
                a[k][j] = v;
            }
            //Меняем местами элементы вектора  b
            v = b[im];
            b[im] = b[k];
            b[k] = v;
        }
        for (i = k + 1; i < n; i++)
        {//Зануляем первый столбец
            v = 1.0*a[i][k] / a[k][k];
            a[i][k] = 0;
            b[i] = b[i] - v * b[k];
            if (v != 0)
                for (j = k + 1; j < n; j++) //Вычисляем элементы в строчках
                {
                    a[i][j] = a[i][j] - v * a[k][j];
                }
        }
    }
}
Объясните пожалуйста, зачем в строке

C++
1
v = 1.0*a[i][k] / a[k][k];
мы элемент матрица умножаем на 1.0 перед тем, как делить? Что это дает?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2019, 14:44
Ответы с готовыми решениями:

Зачем в вычислениях умножать на единицу?
Сейчас вот практикуюсь в вычислениях на Javascript и вот появился вопрос к коду: function...

Зачем в .NET в 2014 г. строгая типизация? Зачем нужно писать Convert.ToInt32(), ToString(), Int32.Parse()?
По поводу преобразования. Современный препроцессор кода сам определяет, что куда преобразовывать....

Пояснить, зачем в коде переменной total присваивать ноль в начале, а counter единицу?
Привет всем. Сейчас учу Си, читаю книгу &quot;Как программировать на Си&quot; автор: Дэйтел П.Дж., Дейтел...

Зачем необходимо матричное умножение в теории графов?
Пожалуйста, помогите разобраться с тем, зачем именно необходимо умножение графов (тема интересует с...

1
16079 / 8681 / 2120
Регистрация: 30.01.2014
Сообщений: 14,960
28.05.2019, 16:00 2
Лучший ответ Сообщение было отмечено e7min как решение

Решение

Цитата Сообщение от e7min Посмотреть сообщение
Что это дает?
В данном случае ничего. Видимо это осталось от варианта кода, в котором a обозначало целочисленную матрицу. Тогда бы умножение на 1.0 являлось своеобразным приведением к типу с плавающей точкой, чтобы избежать целочисленного деления.
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2019, 16:00
Помогаю со студенческими работами здесь

Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить?
Вот еще один вопрос зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это...

К значению четных элементов массива прибавьте единицу, от значения нечетных отнимите единицу
Помогите пожалуйста решить. Не могу сама додуматься. Создайте одномерный массив из 15 элементов....

Нужно увеличение значения сессии на единицу (вместо этого увеличивается на 2)
echo ++$_SESSION; Результатом должно быть увеличение на единицу при каждом обновление страницы:...

Редактирование задачи. Нужно чтобы интервал ab, введенный пользователем, исключал минус единицу
Есть вот прога) Нужно ее чуть отредактировать: нужно чтобы интервал ab, введенный пользователем,...


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

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

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