|
0 / 0 / 0
Регистрация: 16.02.2025
Сообщений: 6
|
||||||
Результаты суммирования целого и разбитого массивов отличаются16.02.2025, 19:40. Показов 2326. Ответов 11
Метки нет (Все метки)
В программе 2 цикла. Один "целый" от 0 до максимального значения, второй цикл разбит на 4 части. Почему-то, когда массив равен const size_t arrSize = 50 000 000; результат суммирования "целого" и "разбитого" массива совпадают, что вполне логично.
Но начиная с некоторого значения, например при const size_t arrSize = 120 000 000; результаты получаются разные, хотя массив состоит из целочисленных переменных. Да, из суммы извлекается квадратный корень, но переменные целочисленные, поэтому ошибок округления при суммировании быть не должно. Система Windows 10, IDE Code Block 20.03, Процессор Е2682V4. Вопрос: Это моя ошибка в коде, ошибка компилятора или компьютер не исправен?
Спасибо большое, что поправили сообщение Добавлено через 5 секунд Спасибо большое, что поправили сообщение
0
|
||||||
| 16.02.2025, 19:40 | |
|
Ответы с готовыми решениями:
11
Как целочисленный массив X из n элементов разбить на m фрагментов? Дан массив упорядоченных по возрастанию целых чисел. разработать алгоритм бинарного поиска заданного числа, результат номер искомого числа или 0 если Программа котрая ищет дубликаты в целочисленном массиве и если они есть выводит результат на экран |
|
6088 / 2779 / 1037
Регистрация: 01.06.2021
Сообщений: 10,138
|
|
| 16.02.2025, 19:51 | |
|
1
|
|
|
place status here
3185 / 2219 / 640
Регистрация: 20.07.2013
Сообщений: 5,986
|
|||||||||||||||||||||
| 16.02.2025, 20:12 | |||||||||||||||||||||
|
Не знаю, что тут за "потоки" и задача в целом, но (частичные суммы не все одинаковые, равны только sum_func[2] и sum_func[3]):
1
|
|||||||||||||||||||||
|
Вездепух
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,169
|
||||||||||||
| 16.02.2025, 20:15 | ||||||||||||
Сообщение было отмечено vasya_sidorov_2 как решение
Решениеdouble к int64_t после сложения. В выражении
double, а затем результат приводится к типу int64_t. При "перетасовке" слагаемых это будет приводить к отличиям в финальном результате. Если вы хотите избежать этого эффекта, то приводить результат sqrt к целому нужно до сложения. То есть везде сделать:
3
|
||||||||||||
|
place status here
3185 / 2219 / 640
Регистрация: 20.07.2013
Сообщений: 5,986
|
|
| 16.02.2025, 20:28 | |
|
В моем посте нужно в typedef заменить unsigned long на unsigned long long и увеличить размер стека (если необходимо).
А вообще да, странно выглядит попытка "перекинуть" вычисления на ядра-потоки путем простого ввода переменной.
0
|
|
|
Вездепух
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,169
|
|||||||||||||
| 16.02.2025, 21:16 | |||||||||||||
double при выполнении вычислений с большими числами, когда точности типа double становится уже недостаточно для правильного представления даже целой части результата.Приведенный пример это демонстрирует. Результат std::sqrt(ADD * 2) равен 12178.999959. Однако сумма BASE + 12178.999959 дает 549992880527.000000, т.е. происходит округление в большую сторону до следующего целого уже в рамках double. Сумма же BASE / 4 + 12178.999959 дает 137498229265.999969, т.е. не вызывает округления вверх до следующего целого. Именно это отличие и приводит к разнице в результатах.
2
|
|||||||||||||
|
0 / 0 / 0
Регистрация: 16.02.2025
Сообщений: 6
|
|
| 17.02.2025, 11:28 [ТС] | |
|
Изучаю паралельное программирование, написал программу-тест на 4 потока, а так как современные процессоры очень быстрые, пришлось делать большой массив и извлекать корень из суммы. При этом был уверен, что корень из целого будет целым числом. А оказалось, что происходит приведение к вещественному типу. Век живи век учись...
Приведение типа по умолчанию - это зло. А программа выглядит странно, потому что задавая вопрос вырвал нужный кусок убрав все лишнее. Добавлено через 3 минуты Всем ответившим по делу Большое спасибо. Даже не ожидал, что корень из целого числа приводится в вещественному типу.
0
|
|
|
6088 / 2779 / 1037
Регистрация: 01.06.2021
Сообщений: 10,138
|
|||
| 17.02.2025, 11:50 | |||
|
Добавлено через 1 минуту
1
|
|||
|
Заблокирован
|
|
| 17.02.2025, 17:42 | |
|
0
|
|
|
6088 / 2779 / 1037
Регистрация: 01.06.2021
Сообщений: 10,138
|
||
| 17.02.2025, 17:44 | ||
|
0
|
||
|
Заблокирован
|
|
| 17.02.2025, 17:56 | |
|
Кликните здесь для просмотра всего текста
0
|
|
|
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,678
|
|
| 18.02.2025, 11:56 | |
|
0
|
|
| 18.02.2025, 11:56 | |
|
Помогаю со студенческими работами здесь
12
Разбить строку типа AnsiString на массив целых чисел
Как разбить строку на символы и поместить в целочисленный массив? Реализовать программу, которая добавляет соответствующие элементы двух заданных массивов целых чисел и заносит результат Каждый отрицательный элемент массива заменить результатом его целочисленного деления на 3 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|