Przepisać skrypt na C lub C++
Problemy po prostu nie miały szans)
Dzień dobry
Istnieje skrypt napisany w Pythonie, który jest bardzo wolny, przetwarzanie 1 MB danych zajmuje ponad 25 sekund
1. Problem w kodzie (techniczny):
Konkretnie — w generate_auto_seed() oraz rank_two_symbols_optimized()
Zajmują one ~90% całego czasu wykonania skryptu
Jest to związane z:
przeszukiwaniem każdego bitu w długiej tablicy (0 i 1)
obliczaniem dużego rangi permutacji (operacja matematycznie trudna)
używaniem dużych liczb (często z współczynnikami dwumianowymi)
potrzebny specjalista, który:
Rozumie algorytmiczną istotę rangowania permutacji,
Umie pracować z optymalizacją pamięci, wątkami i dużymi liczbami,
Może zrealizować blokowe przetwarzanie tablicy 0/1 na niskim poziomie.
Główną istotą jest szybkość - pożądana szybkość 1-3 sekundy
Równolegle - praca nad seed
Proszę przesłać zgłoszenie, jeśli będziecie w stanie to zrealizować.
Dziękuję
Budżet: 100 USD Termin: 1 dzień
Cześć!
Twój skrypt jest wolny z powodu dwóch funkcji:
generate_auto_seed() — enumeracja bitów, praca z dużymi liczbami.
rank_two_symbols_optimized() — obliczanie rangi permutacji (ciężkie operacje kombinatoryczne).
Co zamierzam zrobić:
1. Optymalizacja algorytmu
Zamienię enumerację na algorytm O(n) do rangi sekwencji binarnych (analogicznie do Kombinatorycznego Systemu Liczbowego).
Wstępnie obliczę współczynniki dwumianowe w O(n²) raz, a nie w pętli.
2. Przyspieszenie o 10-100 razy
Przepiszę krytyczne części w Cythonie (usunięcie narzutu Pythona).
Dodam kompilację JIT Numba dla matematyki.
Jeśli będzie potrzebne — instrukcje SIMD (AVX2) za pomocą rozszerzeń C.
3. Równoległość i pamięć
Podzielę dane na bloki, przetworzę w 4-8 wątkach (przetwarzanie równoległe).
Zamienię listy na numpy.ndarray (dtype=uint8), aby zaoszczędzić pamięć.
4. Gwarancje
Pierwsze 500 KB zostanie przetworzonych w ≤3 sekundy w ciągu 2 dni.
Ostateczny wynik to 1-3 sekundy/MB (lub zwrócę pieniądze za ulepszenia).
Dlaczego ja?
Ostatnio przyspieszyłem podobny kod do generacji nasion w kryptografii (z 30 sek do 0,8 sek).
Jestem gotów pokazać prototyp na pierwszych 100 linijkach twoich danych za darmo.
Co powinienem wysłać:
Źródła generate_auto_seed() i rank_two_symbols_optimized().
Przykład danych wejściowych (tablica bitów 0/1).
Dokładne wymagania dotyczące środowiska (Python 3.10? Linux/Windows?).
Zaczynam dzisiaj. Czekam na twoje dane!
Z poważaniem,
Ziqo,
P.S. Jeśli masz jakiekolwiek wątpliwości, mogę przeprowadzić darmową analizę 10-20 linijek kodu i pokazać, jak je przyspieszyć.
Budżet: 95 USD Termin: 1 dzień
Dzień dobry! Zawsze jestem w kontakcie, aby pomóc. Piszcie, omówimy! I nie zapomnijcie zajrzeć do portfolio — jest tam wiele interesujących rzeczy!
Budżet: 100 USD Termin: 2 dni
Cześć, zainteresowała mnie twoja oferta, czy mogę dowiedzieć się o niej więcej w wiadomości prywatnej.
Доброго дня. Будь ласка, надайте зразу посилання на ваш код, git ... дякую.
Co należy zrobić: opracować aplikację EXE w C++; stworzyć nowoczesny interfejs graficzny zgodnie z moim projektem; zrealizować logikę działania programu; zapewnić stabilne działanie na Windows 10 i Windows 11; udostępnić kod źródłowy Visual Studio (.sln, .vcxproj). Już mam: projekt interfejsu (załączam zrzuty ekranu); koncept działania programu; listę funkcji, którą omówimy z wykonawcą. Wymagania dla wykonawcy: pewna znajomość C++; doświadczenie w pracy z Microsoft Visual Studio; doświadczenie w tworzeniu aplikacji Windows Desktop; staranny i czytelny kod; gotowość do utrzymywania kontaktu podczas rozwoju. Proszę, w odpowiedzi prześlij: przykłady twoich programów EXE; doświadczenie w pracy z C++; orientacyjny czas realizacji; koszt pracy.
Dzień dobry Należy stworzyć moduł, który będzie działał z bazą danych Firebird w C++ do sprzedaży towarów. Są przykłady gotowych rozwiązań oraz opis funkcjonalności modułu. Główne funkcje: autoryzacja, wybór towaru na ekranie z grup/podgrup, przejście do koszyka, płatność kartą oraz druk paragonu. Program powinien działać na Windows 10 i wyżej, korzystać z istniejącej bazy danych.
Wymagana jest разработка łatki do sterownika karty graficznej, rozszerzającej możliwości zarządzania adapterem graficznym poprzez dodanie dodatkowych ustawień użytkownika. Łatka powinna integrować się z istniejącą architekturą sterownika bez naruszania jego podstawowej funkcjonalności i zapewniać zgodność z obsługiwanymi wersjami systemu operacyjnego. Głównym celem jest zapewnienie bardziej elastycznego dostępu do parametrów, które są niedostępne w standardowej panelu sterowania, z możliwością ich zmiany przez interfejs użytkownika lub programowe API. Łatka powinna przewidywać modułową strukturę, umożliwiającą w przyszłości dodawanie nowych parametrów bez istotnej przeróbki kodu. Należy zapewnić poprawne przetwarzanie błędów, rejestrowanie zmian, możliwość przywrócenia ustawień do wartości domyślnych, a także zachowanie zgodności z przyszłymi aktualizacjami sterownika, o ile to możliwe. Rozwiązanie powinno być dostarczone z dokumentacją techniczną opisującą architekturę, zrealizowane możliwości, ograniczenia oraz zalecenia dotyczące testowania.