Witam, mam mały problem z wielkością tablicy, a dokładniej sprawa wygląda tak , że mam
double[] wynik = new double[m];
gdzie m to liczba 2 ^ 32 i w trakcie tworzenia następuje przepełnienie. Jak mogę sobie z tym poradzić ?
Witam, mam mały problem z wielkością tablicy, a dokładniej sprawa wygląda tak , że mam
double[] wynik = new double[m];
gdzie m to liczba 2 ^ 32 i w trakcie tworzenia następuje przepełnienie. Jak mogę sobie z tym poradzić ?
232 * rozmiar double to 235 bajtów = 16GB - masz tyle ramu, a nawet jak masz to sądzisz, że znajdziesz w nim tak długi ciągły fragment wolnej pamięci?
Musisz wymyślić lepszy algorytm, żeby nie potrzebował tyle pamięci, a przynajmniej nie na raz.
Nie robić tablicy wielkiej na 32 GB.
235 bajtów to 32 GiB natomiast przynajmniej w Javie maks indeks to 231 - 1, bo indeksowanie jest za pomocą inta (ze znakiem), więc maks rozmiar jest 2x mniejszy - tutaj 16 GiB by wyszło.
Rozumiem, dziękuje za odpowiedź, poradziłem sobie z problemem.