-
Data: 2013-09-25 07:56:12
Temat: Re: funkcja haszująca/skrótu
Od: Przemysłąw Dębski <p...@g...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Piotrne pisze:
> W dniu 2013-09-24 06:06, bartekltg pisze:
>
> > Pytacz pewnie by docenił dwa słowa, skąd wzorek;)
>
>
> Wzorek jest spisany m.in. tu:
> http://math.stackexchange.com/questions/349924/funct
ion-mapping-combinations-to-natural-numbers
>
>
> Wyjaśnić go można obrazowo na trójkącie Pascala
> ze współczynnikami dwumianowymi. Dla podanego
> przykładu (kombinacje 2 elementów z 6) znajdujemy
> liczbę C(6,2) = 15. Tyle jest różnych kombinacji.
> Jednocześnie tyle jest różnych "dróg" prowadzących
> od liczby 15 do jedynki na górze trójkąta - przyjmując,
> że poruszamy się zawsze o "piętro" w górę (do n-1),
> w lewo (do k-1) lub w prawo (do k). Każda spośród tych
> dróg reprezentuje inną kombinację: element należy
> do podzbioru, jeśli "skręciliśmy w lewo" (wybraliśmy k-1).
>
> Pozostaje więc ponumerowanie dróg (i jednocześnie kombinacji).
> Dla przykładowej 15 (= 5 + 10) przyjmujemy, że 5 początkowych
> numerów (0 do 4) pochodzi z "piątki", a 10 kolejnych numerów
> (5 do 14) z "dziesiątki". Przenosząc się o poziom wyżej:
> numery 5 do 14 pochodzą z "czwórki" (5 do 8) oraz "szóstki"
> (9 do 14). I tak dalej...
Dzięki za pomoc, algorytm działa idealnie na moich danych, choć to jak
działa nie do końca jeszcze rozumiem :) Współczynniki stablicowałem.
Uzupełniając jeszcze Twoją odpowiedź dla Wojtka, dlaczego nie liczby w
systemie 52. Tak (w sensie - bitowo)zakodowane kombinacje można łatwo
testować na okoliczność zawierania lub nie elementów przy pomocy
operatorów bitowych. Ma to znaczenie gdy podzbiór który obrabiam jest
zdefiniowany w taki sposób, że generowanie iteracyjne jedynie
prawidłowych kombinacji jest skomplikowane i raczej mało efektywne.
Przykład:
Tu muszę nadmienić, że tablica do której robiliśmy wskazania, jest tylko
przejściową do innej, posortowanej wg. takiego klucza, który gwarantuje
(poza przypadkami szczególnymi), że podzbiory które będziemy badać będą
w niej ciągłe (wszystkie wartości od indeksu a do b). Wracając o
przykładu - odniosę się do faktycznych danych. Mamy zbadać coś we
wszystkich kombinacjach par od QQxxx do AAxxx, przy czym w xxx nie może
być kilku konkretnych kart. Ponieważ mają to być pary, generując
iteracyjnie musiał bym zadbać by xxx oprócz kart których nie mogą z
założenia zawierać, nie zawierały w sobie róznych innych tworów typu np.
55x, które z jednej pary tworzą dwie pary. Natomiast jeśli wyjdę od
strony tablicy w której pary AA-QQ są w ciągłym zakresie indeksów i nie
ma wśród nich kart klasy innej niż para (tak jest posortowana tablica)
wówczas pozostaje mi zbadać tylko jawnie zadane warunki nie zawierania
konkretnych kart. Przy bitowym zakodowaniu robię to najczęściej jednym
AND, przy kodowaniu w systemie 52 muszę się gimnastykować.
Pozdrawiam
Następne wpisy z tego wątku
- 25.09.13 12:36 JDX
- 25.09.13 15:05 p...@g...pl
- 25.09.13 17:30 JDX
- 25.09.13 19:01 Ghost
Najnowsze wątki z tej grupy
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-29 KSeF - 13 wątpliwości
- 2026-01-29 A ja się pochwalę
- 2026-01-29 Warszawa => Mid/Senior IT Recruiter <=
- 2026-01-29 Warszawa => Senior Java Developer <=
- 2026-01-29 Warszawa => IT Recruiter <=
- 2026-01-28 Degradacja
- 2026-01-28 Wysoki Sąd poinstruował czego unikać wyzywając Owsiaka "Równiejszego"
- 2026-01-28 Białystok => Solution Architect (Workday) - Legal Systems <=
- 2026-01-28 Białystok => Preseles Inżynier (background baz danych) <=
- 2026-01-28 Wrocław => Konsultant wdrożeniowy ERP <=
- 2026-01-28 Łódź => Microsoft Engineer <=
- 2026-01-28 Białystok => Tester manualny <=
- 2026-01-27 Tradycja ciągania posłów po sądach za wystąpienia w Sejmie będzie kontynuowana [Lepper 2]
- 2026-01-27 Pierwszy raz sprzedano więcej samochodów zeeletryfikowanych niż ice
- 2026-01-27 Elektryczny Kałasznikow




Jak kupić pierwsze mieszkanie? Eksperci podpowiadają