Aktywne Wpisy
szklarskaporeba +494
#korposwiat #pracbaza #big4 Młode roczniki są bardzo śmieszne. Dzisiaj '99 podszedl na open space do managera i powiedział ze albo pierwsze dwa tygodnia listopada będzie mieć wolne a potem home working do końca roku albo jutro rzuca wypowiedzenie xD. Pulsujących zawołam jutro z rozwinięciem sytuacji.
juzwos +670
Czas go zoptymalizować.
#golang #naukaprogramowania
Mam kilka pomysłów.
1. Utworzenie tablicy liczb pierwszych i wykorzystanie jej do faktoryzacji.
2. Zmianę sposobu wyszukiwania dzielników liczby, ponieważ obecnie to jest coś co zajmuje najwięcej czasu.
Nad oboma metodami muszę się zastanowić i raczej obie zaimplementuję aby zobaczyć jakie będą różnice.
edit: ok nie zauważyłem tagu #naukaprogramowania never mind
Będę miał już punkt odniesienia.
Tym źle jest pewnie wyszukiwanie dzielników ponieważ obecnie działa to mniej więcej tak.
1. Znajdź dzielniki liczby a i zapisz je w "kontenerze"
2. Dla każdego dzielnika w kontenerze zrób 1
3. Jeżeli znaleziono nowe dzielniki wróć do 2
A wyszukiwanie dzielników polega na sprawdzaniu od 2 do połowy danej liczby czy jest jej dzielnikiem więc tu się najwięcej czasu marnuje.
Komentarz usunięty przez autora
Tutaj jest taki:
/tmp/go $ go run factor2.go
1000
[2 2 2 5 5 5]
A tak na poważnie to napiszę wersję z wygenerowaną tablicą liczb pierwszych. Będzie raczej najszybsza jak do tej pory.
@Wina_Segmentacji: Protip: wystarczy wygenerować liczby pierwsze do pierwiastka kwadratowego z danej liczby ( ͡° ͜ʖ ͡°)
Gotowe. Faktoryzacja trwa ułamek sekundy. Teraz tworzenie tablicy liczb pierwszych jest najdłuższe. Dla 600851475143 czyli 775146 trwa 82 sekundy. Spore przyspieszenie w porównaniu do kilku godzin wcześniej.