Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 01.03.2015
Сообщений: 30
1

Длинный массив чисел в Python

25.09.2016, 17:52. Показов 3453. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо создать массив, в котором будет 1.79769*10^308 элементов. Значение каждого элемента от 0 до 1.79769*10^308 соответственно.

Использую пакет numpy, но у него есть ограничения Решение задачи не найдена с помощью него.
Python
1
a = np.arange(0,179769000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,1)
Текст ошибки: Maximum allowed size exceeded

Добавлено через 11 минут
Такой огромный массив необходим для поиска простого числа до 1.79769*10^308

Сам алгоритм:
Python
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
import numpy as np
n = 1000
a = np.arange(0,n,1) # заполнение массива значениями от 0 до n-1
 
# вторым элементом является единица, которую не считают простым числом
# забиваем ее нулем.
a[1] = 0
 
m = 2 # замена на 0 начинается с 3-го элемента (первые два уже нули)
while m < n: # перебор всех элементов до заданного числа
    if a[m] != 0: # если он не равен нулю, то
        j = m * 2 # увеличить в два раза (текущий элемент простое число)
        while j < n:
            a[j] = 0 # заменить на 0
            j = j + m # перейти в позицию на m больше
    m += 1
 
# вывод простого числа на экран, которое до 1.79769*10^308
b = []
for i in a:
    if a[i] != 0:
        b.append(a[i])
del a
b.reverse()
print (b[0])
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2016, 17:52
Ответы с готовыми решениями:

Дан массив натуральных чисел. Получить самый длинный из отрезков последовательности
Даны натуральное n, массив из натуральных чисел A(n). Рассмотреть отрезки последовательности...

Дан неупорядоченный массив целых чисел. Найти самый длинный участок строгого возрастания, напечатать индексы
Дан неупорядоченный массив целых чисел. Найти самый длинный участок строгого возрастания,...

Python Задан массив чисел в двоичной системе счисления. Упорядочить элементы массива по убыванию. Определить сумму чисел
Задан массив чисел в двоичной системе счисления. Упорядочить элементы массива по убыванию....

В массиве чисел найдите самый длинный подмассив из одинаковых чисел
Помогите делать задание, пожалуйста: в массиве чисел найдите самый длинный подмассив из одинаковых...

1
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
26.09.2016, 13:23 2
numpy ориентирован на работу с "нативными" числами, то есть с теми, с которыми может работать процессор.
У самого Питона есть свой тип больших чисел.

А вообще мне кажется, вы не поняли задание. Ясен пень, что столько памяти вам никто не даст. Ищите простое число как-то по другому.

Добавлено через 2 часа 58 минут
Чтобы вы поняли, поясняю.
1 гигабайт - это, округлённо, 1е+9 байт.
4 гигабайта, теоретический предел по памяти для 32-битных приложений - это 4е+9 байт. Для 64-битных приложений возводим это число в квадрат, получаем 16е+18 байт. Числа с вашими пределами - это float64, на одно число - 8 байт, то есть в теоретический предел для 64-битных приложений войдёт 2е+18 чисел.

То есть вам нужно примерно в 1.79769*10^308/2е+18 ~ 1е+290 раз памяти больше, чем составляет теоретический предел для 64-битных приложений.

Таких компьютеров нет и не предвидится. Но если вдруг когда-нибудь их изобретут, то, я думаю, даже Биллу Гейтсу, жалкому долларовому триллионеру, никогда не заработать на столько плашек памяти.
0
26.09.2016, 13:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2016, 13:23
Помогаю со студенческими работами здесь

Из списка чисел путем вычеркивания некоторых чисел, не меняя порядка остальных, составить максимально длинный новый спис
Необходимо из списка чисел путем вычеркивания некоторых чисел, не меняя порядка остальных,...

Длинный cli-массив
Такой код: array&lt;MyClass ^, 20001&gt; ^var; - выдает ошибку компиляции: error C2739: 20001: явно...

Найти длинный остаток от деления двух чисел
Упростить алгоритм готовой программы Требуется найти остаток от деления чисел. Проблема в...

VBA. Не получается вставить длинный текст в массив
Доброго времени суток! Подскажите пожалуйста как можно вставить длинный текст в массив? Ниже...

Дан символьный массив. Определить самый длинный элемент - палиндром
Собственно, сабж. Дан символьный массив. Определить самый длинный элемент - палиндром. Поиск не...

Найти максимально длинный порядок чисел, идущих в порядке возрастания в строке
4)найти максимально длинный порядок чисел идущих в порядке возрастания в строке


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru