-
Data: 2015-07-24 19:48:51
Temat: Re: Algorytm wyboru k z n
Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 24.07.2015 17:32, Borneq wrote:
> Jak wypisać wszystkie możliwości k z n?na przykład wypisać 32-bitowe
> liczby, które by miały 6 bitów zapalonych?
Nakarm googla
Enumerating k-combinations
(enumerate) numbers with k bits set
matlab nchoosek.m ;-)
http://stackoverflow.com/questions/127704/algorithm-
to-return-all-combinations-of-k-elements-from-n
Tu masz kilka różnych algorytmów, włącznie z kodami greya.
Podoba mi się ten bitowy:
http://stackoverflow.com/questions/1851134/generate-
all-binary-strings-of-length-n-with-k-bits-set
http://www.graphics.stanford.edu/~seander/bithacks.h
tml#NextBitPermutation
Po małym odkurzeniu:
int main() {
int k=4;
const int n=7;
uint64_t v= (1<<k) - 1;
while ( v < (1<<n) ) {
cout<<bitset<n>(v)<<endl;
uint64_t t = (v | (v - 1)) + 1;
v = t | ((((t & -t) / (v & -v)) >> 1) - 1);
}
}
bitset<n> jest tylko do ładnego wyświetlania.
Ograniczone jest niestety do 64 obiektów.
boost::multiprecision::int128_t i podobne marudzą na
jednoargumentowy minus, można je nakłonić do współpracy tak:
v = t | ((((t & 0-t) / (v & 0-v)) >> 1) - 1);
pzdr
bartekltg
0001111
0010111
0011011
0011101
0011110
0100111
0101011
0101101
0101110
0110011
0110101
0110110
0111001
0111010
0111100
1000111
1001011
1001101
1001110
1010011
1010101
1010110
1011001
1011010
1011100
1100011
1100101
1100110
1101001
1101010
1101100
1110001
1110010
1110100
1111000
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- 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
Najnowsze wątki
- 2024-12-01 Pijani kierowcy
- 2024-12-01 "Chciałem zamówić kurs tym"
- 2024-11-30 Windykatorzy ścigają spadkobierców z mandat nieboszczyka za przekroczenie prędkości???
- 2024-11-30 Łódź => Technical Artist <=
- 2024-11-30 Lublin => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-11-30 Warszawa => Microsoft Dynamics 365 Business Central Developer <=
- 2024-11-30 Bieruń => Team Lead / Tribe Lead FrontEnd <=
- 2024-11-30 Zielona Góra => Senior PHP Symfony Developer <=
- 2024-11-30 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-30 Lublin => Spedytor międzynarodowy <=
- 2024-11-30 Warszawa => Mid IT Recruiter <=
- 2024-11-30 Warszawa => Fullstack Developer <=
- 2024-11-30 Żerniki => Dyspozytor Międzynarodowy <=
- 2024-11-30 Warszawa => System Architect (background deweloperski w Java) <=
- 2024-11-30 Katowice => Key Account Manager (ERP) <=