-
Data: 2020-08-24 13:52:37
Temat: Re: Hasz dla permutacji
Od: Borneq <b...@a...hidden.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 8/24/20 1:48 PM, Mateusz Viste wrote:
> 2020-08-24 o 13:31 +0200, Borneq napisał:
>> On 8/24/20 10:20 AM, Mateusz Viste wrote:
>>> Rób dwie operacje: xor oraz shift jednego bitu... Tak działa BSD
>>> sum. Zalety takie, że jeszt bardzo szybki oraz wrażliwy na inwersję
>>> wartości. Szerokość takiego hashu sobie możesz dopasować sam,
>>> wystarczy użyć innego clampingu.
>>>
>>> 3 lata temu popełniłem tego implementację:
>>> https://sourceforge.net/p/bsum/code/HEAD/tree/trunk/
bsum.asm
>>
>> Zastanwiam się, bo taki hasz ma okreśłoną "pojemność" po 32 takich
>> przeunięciach wcześniejsze wartości nie będą miały żadnego wpływu na
>> sumę.
>
> Mój błąd, z rozpędu i przyzwyczajenia napisałem "shift", a powinno być
> "rotate". W kodzie który podlinkowałem zobaczysz "ror".
>
> Mateusz
>
No tak, ale jak potem zamienić jeden bajt na inny?
Z mnożeniem świetnie wychodzi, kod w c++
#include <iostream>
#include <vector>
using namespace std;
int sum1 (vector<int8_t> &v) {
int res = 1;
for (int i=0; i<v.size();i++){
res += v[i]*(i+1);
}
return res;
}
int main() {
vector<int8_t> v;
v.clear();
v.push_back(1);
v.push_back(3);
v.push_back(32);
v.push_back(2);
int sum = sum1(v);
std::cout << sum << std::endl;
v[2]=127;
int fastsum = sum + 3*(127-32);
std::cout << fastsum << " " << sum1(v) << std::endl;
return 0;
}
Następne wpisy z tego wątku
- 24.08.20 13:57 Mateusz Viste
Najnowsze wątki z tej grupy
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
- Ideologia Polskiego Programisty wer.3
Najnowsze wątki
- 2024-04-29 Warszawa => Staż w dziale Sprzedaży B2B (2 miejsca) <=
- 2024-04-29 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-04-29 Ulm => IT Network Engineer <=
- 2024-04-29 Gdańsk => UX/UI Designer <=
- 2024-04-29 Gdańsk => AI Specialist <=
- 2024-04-29 frankowicze odcinek NNN
- 2024-04-29 Warszawa => Specjalista ds. Cyberbezpieczeństwa <=
- 2024-04-29 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2024-04-29 Zielona Góra => Inżynier R&D Energoelektronik <=
- 2024-04-29 Warszawa => Google Ads Freelancer <=
- 2024-04-28 wymiana przewodu od licznika do mieszkania
- 2024-04-28 Lustra w maszynie ASML
- 2024-04-28 Elektryk przytarł podłogę
- 2024-04-27 Nowy, "szybki "komputer AsRock nie posiada modułu TPM
- 2024-04-27 Nowy, "szybki "komputer AsRock nie posiada modułu TPM