0 / 0 / 0
Регистрация: 16.06.2018
Сообщений: 4
|
|
1 | |
Массив на 1000000000000000 элементов30.06.2018, 19:17. Показов 1852. Ответов 16
Метки нет (Все метки)
Есть ли что-то наподобие массива, но с максимальным количеством элементов не меньше 1000000000000000?
0
|
30.06.2018, 19:17 | |
Ответы с готовыми решениями:
16
Заполнить массив из 10 элементов, записать полученный массив в другой массив из 10 элементов Массив: Записать в файл массив из 6 элементов таких, что являются суммами элементов столбцов исходного массива Дан массив из 10 элементов A(10). Сформировать массив C из всех элементов, которые будучи умноженные на 5 по модулю меньше 40 Даны два одномерных массива целых чисел (массив А, состоящий из n элементов, массив В – из m элементов), заполненных с |
0 / 0 / 0
Регистрация: 16.06.2018
Сообщений: 4
|
|
30.06.2018, 22:51 [ТС] | 3 |
Спасибо, поняла, что тупанула
0
|
ValeryS
|
30.06.2018, 23:07
#5
|
0
|
Croessmah
|
30.06.2018, 23:09
#6
|
Не по теме: ValeryS, это из Comedy Club, вроде. :)
0
|
Mirmik
|
01.07.2018, 09:10
#7
|
0
|
Croessmah
|
01.07.2018, 12:27
#8
|
0
|
Mirmik
|
01.07.2018, 17:36
#9
|
Не по теме: тоесть, тебибайт, конечно...
0
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|||||||||||
01.07.2018, 20:21 | 10 | ||||||||||
Если у вас возникла нужда в таком кол-ве виртуальной памяти, а такое реально может понадобиться, например, для работы с разреженными матрицами. Физической памяти надо значительно меньше, а массив обрабатывать соотв. функциями нужно.
Тем не менее должен сказать, что задачу на x86_64 вы можете решить только поумерив аппетит. У меня получилось выделить только 82 TiB. Если задача - не менее 1PiB, то придется искать другую архитектуру. По порядку. 1. Процессоры x86_64 поддерживают виртуальное адресное пространство процесса - 48 бит. Это 2^48 = 256TiB. (Где-то читал, что у последних процессоров Интела есть режим с 64 бит, но реальных системных плат, поддерживающих такой режим нет.) 2. Основные дистрибутивы Линукс сейчас поддерживают 128TiB виртуальной памяти для одного процесса. Это уже меньше. Про Венду по понятным причинам не пишу. 3. На своей небольшой машине с 8 GiB физической памяти мне, как написал выше, удалось получить только 82TiB. А это еще меньше.
0
|
Неэпический
|
|
01.07.2018, 20:24 | 11 |
Проблемы могут начаться при использовании всей этой памяти. Возврат не нулевого указателя из malloc не гарантирует выделение памяти, т.е. при её заполнении может вылететь segfault.
0
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
01.07.2018, 20:25 | 12 |
PS. Чтобы получить 82TiB пришлось менять параметры ядра. По умолчанию выделяет не больше, чем (физ памаять + своп).
Добавлено через 1 минуту Естественно. Речь о специфических задачах.
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
01.07.2018, 23:11 | 13 |
Я не очень понимаю, о чем разговор. Если задача потребовала 1000000000000000 - дохреналлиард, то через день она потребует на 1 нолик (справа) больше. А еще через день - еще один. И тут никакие рассуждения о мощности компьютеров не прокатят. Надо включать собственную башку. Хотя бы для того, чтобы найти в интернете приемлемое решение. И понимать, что компутер, хоть и очень большой, но все-таки КОНЕЧНЫЙ АВТОМАТ.
Добавлено через 2 минуты И что решения, вполне годящиеся для небольших порядков, совсем не сработают для порядков более серьезных.
1
|
Велосипедист...
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
|
|
02.07.2018, 02:53 | 14 |
Это только если запрашивать 0 байт. В ином слечае Стандарт гарантирует :
Сообщение от 7.22.3 Memory management functions | 1
0
|
Неэпический
|
||||||
02.07.2018, 09:00 | 15 | |||||
Угу. Система может сказать что память есть, хотя её нет. Указатель вернется валидный, а потом сегфолт при работе с этой памятью. После выделения всю память можно занулить, тогда увидим результат.
вот, собственно
1
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
02.07.2018, 12:00 | 16 |
0
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
02.07.2018, 21:54 | 17 |
Не сегфолт, конечно. Система тупо убьет процесс, сделав запись в журнале, что "не шмогла". Но от этого не легче.
0
|
02.07.2018, 21:54 | |
02.07.2018, 21:54 | |
Помогаю со студенческими работами здесь
17
Дан целочисленный массив А[п], среди элементов есть одинаковые. Создать массив из различных элементов А[п] Дан массив из 30 элементов .Сформировать новый массив, поместив в него номера отрицательных элементов Массив: Из элементов массива А сформировать массив D того же размера по правилу: первые 10 элементов - Di=Ai+i,а остальные - Di=Ai - i. Даны два одномерных массива целых чисел (массив A, состоящий из n элементов, массив B - из m элементов) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |