Wpis z mikrobloga

Potrzebuję wygenerować wszystkie możliwe kombinacje z powtórzeniami gdy kolejność ma znaczenie, czyli produkt kartezjański liczb od 5 do 40, składający się z od 1 do n liczb. Gdzie to n nas tu ogranicza bo zwiększa wykładniczo liczbę możliwości. Dla kombinacji składających się z 5 liczb jest to już ponad 19 milionów możliwości. Jest jakaś szybsza metoda niż itertools.product?
#programowanie #python
  • 6
  • Odpowiedz
@Drmscape2: product jest napisany w c, więc raczej twój kod w pythonie tego nie pobije. Przy algorytmach tak słabej złożoności problemem jest sama ilość danych. Jak twój kod ma działać szybko, gdy najprostrzą operację np. dodanie wszystkich liczb w zbiorze trzeba powtórzyć te 19 milionów możliwości?
  • Odpowiedz
@Drmscape2: może pójdź w wielowątkowość, równolegle będą liczone 2 zakresy (1 do 50%n i od 50%n do końca) w przypadku dwóch wątków. Jak masz więcej dostępnych wątków to jeszcze bardziej spadnie czas oczekiwania na koniec algorytmu.
  • Odpowiedz
  • 0
@woskrosenie: liczba kombinacji rośnie mi wykładniczo, praktyczna nieskończoność podzielona przez 2/4/8 to dalej będzie nieskończoność. ( ͡° ͜ʖ ͡°) Muszę podejść kreatywnie do problemu bo to generowanie kombinacji to był tylko przystanek.
  • Odpowiedz