zużycie pamięci

  • Rejestracja: dni
  • Ostatnio: dni
0

Witam
Poszukuję sposobu na duże zmniejszenie użycia pamięci tego kodu
http://4programmers.net/Pastebin/3420

n0name_l
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2412
0

Uzywaj 4 bitow do zapisu cyfry, nie 8.

  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki, dał byś jakiś link do przeczytania?

spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
vector<bool>?
n0name_l
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2412
0

O czym? Zrobienie tego jest serio proste.

Kopiuj
0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
5 - 0101
6 - 0110
7 - 0111
8 - 1000
9 - 1001

Do tego robisz jakas klase, ktora opakowuje operacje wyciagania tych liczb z charow, podmieniasz to z obecnym stringiem i gotowe.

  • Rejestracja: dni
  • Ostatnio: dni
0

czyli zamienić liczbę na binarną i ją przekazać do funkcji

  • Rejestracja: dni
  • Ostatnio: dni
0

no_name, mimo wszystko nie rozumiem twojego rozwiązania, przecież podanie ciągu binarnego do tej funkcji da zły wynik

  • Rejestracja: dni
  • Ostatnio: dni
0

tutaj chodzi o liczby, rzędu 50000 cyfr, więc typy liczbowe nie wchodzą w gre

  • Rejestracja: dni
  • Ostatnio: dni
K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 9
0

Jak ktoś jest w stanie dokładniej wytłumaczyć sposób no_name to proszę o priv

n0name_l
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2412
0

Nie wiem zbytnio czego nie rozumiesz.
#Robisz sobie typ, ktory trzyma wewnetrznie jakis bitset/tablice charow/whatever.
#W kazdy jeden bajt wkodowujesz 2 liczby (1 gornej czesci oktetu, 2 w dolnej czesci oktetu)
#Definiujesz potrzebne ci operacje arytmetyczne
#Modyfikujesz swoja funkcje, zeby korzystala z nowego typu.

Sopelek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 467
2

Nie lepiej zrobić to w innym systemie liczbowym? (najlepiej jakiś istniejący bignum, np GMP)
Będzie wydajniej i zużycie pamięci będzie dużo mniejsze.
http://www.wolframalpha.com/input/?i=log%282^64%2C+10^50000%29

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 9
0

no_name wydaję mi się jednak, że zrobienie tego twoim sposobem, zużyje więcej pamięci.

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 9
0

a mogę jakoś zamienić unsigned char na bity?

Sopelek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 467
0

c >> 4
i
c & 0x0F

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 9
0

Jednak zostanę przy tym sposobie co mam, jednak staram się jakoś zmienić algorytm, aby nie wychodził mi poza zakres tablicy na końcu mnożenia [z-1] - if nie wchodzi w grę bo za bardzo opóźni program
http://4programmers.net/Pastebin/3427

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.