Dodaj wpis w tym temacie
Spis tematów | Strona: 1 2 ... 533 534 535 ... 554 555 Wyślij wiadomość do admina |
Przewiń wpisy ↓ | moje ... oprogramowanie |
2025-02-01 (16:08)![]() Data rejestracji: 2005-11-07 Ilość postów: 22656 ![]() | wpis nr 1 550 875 [ CZCIONKA MONOSPACE ] Ja na dziś już kończę Jutro przy ..porannej ⏱️kawie zajrzę 💻 |
2025-02-01 (18:48)![]() Data rejestracji: 2016-05-12 Ilość postów: 8686 ![]() | wpis nr 1 550 894 [ CZCIONKA MONOSPACE ] 777ch> Ten pomysł wdrożyłem w kwestii pamięci, bo deklaracja tablicy AS Byte zwiększa jej wielkość circa 16 razy, ale to niewiele bo ilość kombinacji ze wzrostem v i t rośnie bardziej. Myślę nad inną kwestią. Pisałeś, że nie interesują cię braki jako takie, a tylko ich ilość. Nad tym się zastanawiam. Stworzyć tabelę unikalnych np. czwórek, policzyć ich ilość, odjąć od kombinacji i masz ilość braków. Problem tkwi w słowie "unikalnych". Wyśmiana tutaj funkcja SQLa daje sobie z tym doskonale radę. Mając tabelę wszystkich czwórek funkcja: Select DISTINCT * FROM czwórki INTO CURSOR unikalne załatwia sprawę. ile=RECCOUNT() podaje liczbę unikalnych. No ale to SQL. Nie wiem jak stworzyć taką funkcję w paskalu na tyle szybką, aby było o czym dyskutować. --- wpis edytowano 2025-02-01 18:50 --- |
2025-02-01 (19:01)![]() Data rejestracji: 2005-11-07 Ilość postów: 22656 ![]() | wpis nr 1 550 897 [ CZCIONKA MONOSPACE ] ilość kombinacji ze wzrostem v i t rośnie bardziej i to jest zapora czasowa ja już kiedyś tam..... próbowałem różnych sposobów ale myślę sobie ,że są rozwiązania. Ale wybacz ,to katowanie procesorów a nie ma z tego żadnego pożytku , oprócz ewentualnie ... krótkotrwałej satysfakcji. Myślę ,że już zapewne stosują koledzy w paskalu -->Parallel Programming Library czyli równoległe działania możesz poczytać tu np..... https://boringowl.io/blog/multithreading-co-to-jest-i-dlaczego-jest-wazny-w-programowaniu SQL to nie..... "mój ogródek" ja już dziś na bank nie wpadam pozdrawiam --- wpis edytowano 2025-02-01 19:05 --- |
2025-02-02 (02:40)![]() Data rejestracji: 2020-08-05 Ilość postów: 5909 ![]() | wpis nr 1 550 955 [ CZCIONKA MONOSPACE ] ..żeby polecenie SQL "Select DISTINCT * FROM czwórki INTO CURSOR unikalne" (chyba specyficzne dla Visual Fox Pro z lat 90-tych) załatwiało sprawę to napierw trzeba połączyć się z bazą danych, gdzie musi być tabela o nazwie "Czwórki"(bez polskich znaków) albo "Szostki" składająca się z rekordów i zawierajaca przynajmniej jedną kolumnę z nazwanym polem. To można prosto zrobić w Excelu, Pascalu i innych językach programowania używając na przykład funkcji która łączy się z bazą, przekazuje zapytanie i zwraca wynik - ilosci identycznych rekordów - do wyświetlenia użytkownikowi. Gdyby jako tabelę zaimplementować wskazana tu matrycę systemu z LaJolla to wiersze z pobranego pliku z systemem byłyby rekordami i w zależności od dalszej implementacji można na przykład utworzyć 15 pól dla każdego rekordu L1,L2..L15 albo potraktować cały wiersz jako jedno pole. |1 |2 |3 |4 |5 |6 |8 |12 |13 |20 |23 |24 |31 |32 |38| '1 2 3 4 5 6 8 12 13 20 23 24 31 32 38' Jednak system z LaJolla nie zawiera identycznych wierszy więc polecenie szukające duplikatów nic to nie zrobi. I każdy wiersz w przypadku gwarancji "6" to 5005 unikalnych szóstek. To kolejne wiersze dodają duplikaty - może warto zwrócić uwagę na różnice które w pascalu wyłapie szybko, choćby porównanie zbiorów TbyteSet w formie setwiersz1 * setwiersz2 Czy tabelę "czworki" albo "szostki" tworzyć z tych 5005 unikalnych szóstek dla każdego wiersza, 2857 *5005 ? Tu SQL może faktycznie załatwić sprawę Spróbować z szybką bazą SQLite Króciutki program w Pascalu: wrzucić komponent Table do dataModule Wypełnić tabelę wszystkimi czwórkami lub np.szóstkami jak leci ? // tu może być trochę dłużej Na końcu jedno proste polecenie SQL i instrukcja Count := TOTAL_COMBINATIONS - FoundCombinationsCount; Można też bez SQL i bez trzymania w pamieci ogromniastych tablic. ![]() |
2025-02-02 (09:07)![]() Data rejestracji: 2005-11-07 Ilość postów: 22656 ![]() | wpis nr 1 550 960 [ CZCIONKA MONOSPACE ] duplikaty ....... MultiTest "Duplikat" znaleziony "po raz pierwszy" jest unikatem. Liczba duplikatów nie załatwia sprawy. Bo dalej nie znasz ilości [4 czy 5 czy 6]..... które nie wystepują w zbiorze. Problem sprowadza sie oczywiscie do czasu a najwięcej czasu zajmuje przetwarzanie zbyt [wielu] !!! ....... linii sekwencjina kody. |
2025-02-02 (10:54)![]() Data rejestracji: 2005-11-07 Ilość postów: 22656 ![]() | wpis nr 1 550 975 [ CZCIONKA MONOSPACE ] fair_play,kleszek nowa poczyta ,wersja v9 --uwaga!-- Ta sama nazwa pliku. Simple SQlite demo with Free Pascal. https://gist.github.com/pakLebah/277e0875a9ff50b9186fa9e166667add albo podejrzeć akcję można tu: https://paklebah.github.io/fpc-sqldb-dan-sqlite.html#demo-program --- wpis edytowano 2025-02-02 10:56 --- |
2025-02-02 (11:26)![]() Data rejestracji: 2006-05-27 Ilość postów: 4979 ![]() | wpis nr 1 550 978 [ CZCIONKA MONOSPACE ] 777ch, za program dziękuję. Nie zauważyłem żadnych błędów. Podmiana 1 liczby, czasem da nowego HIT-a, czasem nie, choć im mniej jest braków to tym trudniej uzyskać poprawę. Program na pewno się przyda. Będę śledził Twoje postępy w pracy nad ulepszeniem programu. Pozdrawiam! |
2025-02-02 (13:11)![]() Data rejestracji: 2016-05-12 Ilość postów: 8686 ![]() | wpis nr 1 550 991 [ CZCIONKA MONOSPACE ] 777ch> O jakim programie pisze kleszek? ![]() Rand_warr działa znakomicie i szybko ![]() Jedna tylko uwaga, czy plik.txt nie mógłby być posortowany? |
2025-02-02 (13:27)![]() Data rejestracji: 2005-11-07 Ilość postów: 22656 ![]() | wpis nr 1 550 993 [ CZCIONKA MONOSPACE ] Mogę dodać sortowanie gdy osiągnie [0] ale to przy kolejnej okazji. Można w locie zmieniać t=m w górę i w dół żeby zobaczyć czy przyrasta pokrycie. pozdrawiam |
2025-02-02 (14:50)![]() Data rejestracji: 2005-11-07 Ilość postów: 22656 ![]() | wpis nr 1 551 003 [ CZCIONKA MONOSPACE ] fair_play Gdybyś zechciał jeszcze zaangażować "swoje cenne komórki" w kwestii takiej: pierwszy raz klikamy warranty.............. a w zasadzie to nie klikamy tylko zrobimy automat czyli zagnieżdzenie tego polecenia jako wstep !!! i tu musi powstać zapis w tablicy jednowymiarowej typu integer dla każdej linii np: pierwsza linia coveru --> tabrobo[0][0]:= value = suma unikatów występujacych 1x w linni 1 druga linia coveru --> tabrobo[1][0]:= value = suma unikatów występujacych 1x w linni 2 aby robo sprawdzał warranty tylko tej linii w której miesza liczby a pokrycie składał z danych dostepnych .....czyli z sum z pętli od tabrobo[0][0] do tabrobo[ostatnia linia-1][0] czyli np tak: unikaty:=0;//zliczamy unikaty for liniacov=0 to ostatnialiniacov-1 do begin if liniacov<> liniabuforowana then unikaty :=unikaty +tabrobo[ liniacov][0] end; i w trakcie : unikaty:=unikaty + te z tylko i wyłacznie sprawdzanej 1-ej linii w której podmienia; tyle że jak wyjdzie z tej linni czyli skoczy do innej ...... to ta linia --> tabrobo[tapodmieniana][0]:= value=unikaty w tej podmienianej przez robo; i tak w kółko............. to zdecydowanie przyspieszy podmianę, wiesz o co biega....... Ty masz odpowiednie kwalifikacje do napisania takiej procedury warrant5_robowork czyli najpierw była by odpalana warranty5 a w trakcje akcji podmian tylko warrant5_robowork mnie się chwilowo nie chce , ale chętnie zaaplikuję gotowe rozwiązanie do paskala. no to taki temat na tapecie ,oprócz sortowania --- wpis edytowano 2025-02-02 15:01 --- |
2025-02-02 (15:02)![]() Data rejestracji: 2006-05-27 Ilość postów: 4979 ![]() | wpis nr 1 551 004 [ CZCIONKA MONOSPACE ] fair_play, odbierz pocztę |
2025-02-02 (15:44)![]() Data rejestracji: 2016-05-12 Ilość postów: 8686 ![]() | wpis nr 1 551 012 [ CZCIONKA MONOSPACE ] kleszek, mówisz o dzisiejszej poczcie z 8:51? Odebrałem, ale moje szare komórki są jeszcze osłabione temperaturą więc nie zgłębiałem zagadnienia. To samo dotyczy zagadnienia 777ch. --- wpis edytowano 2025-02-02 15:45 --- |
2025-02-02 (16:01)![]() Data rejestracji: 2006-05-27 Ilość postów: 4979 ![]() | wpis nr 1 551 013 [ CZCIONKA MONOSPACE ] O tej co piszesz i tej o 15. To nie takie pilne. Odpoczywaj i nabieraj sił. Dużo zdrówka życzę ![]() |
2025-02-02 (20:57)![]() Data rejestracji: 2021-02-25 Ilość postów: 2582 ![]() | wpis nr 1 551 058 [ CZCIONKA MONOSPACE ] 777ch, co oznaczają te zapisy? jak je należy rozumieć? jak je czytać? 9 ≤ C(42,25,3) ≤ 10 16 ≤ C(42,25,4) ≤ 21 34 ≤ C(42,20,4) ≤ 44 możesz mi pomóc? Tak żebym ja, prosty chłopak z gminu zrozumiał. |
2025-02-03 (07:42)![]() Data rejestracji: 2021-02-25 Ilość postów: 2582 ![]() | wpis nr 1 551 120 [ CZCIONKA MONOSPACE ] 777ch, wiem co to v, k, i t=m (tak mi się wydaje), natomiast nie wiem jak rozumieć ≤ i ≤ ? |
2025-02-03 (07:59)![]() Data rejestracji: 2005-11-07 Ilość postów: 22656 ![]() | wpis nr 1 551 121 [ CZCIONKA MONOSPACE ] ≥ (większy lub równy) oraz ≤ (mniejszy lub równy) C(v,k,t) >= ceiling( (v/k) * C(v-1,k-1,t-1) ) 1.1 Definition Let v ≥ k ≥ t. A t-(v, k, λ) covering is a pair (X, B), where X is a v-set of elements (points) and B is a collection of k-subsets (blocks) of X, such that every t-subset of points occurs in at least λ blocks in B. Repeated blocks in B are permitted. 1.2 Definition The covering number Cλ(v, k, t) is the minimum number of blocks in any t-(v, k, λ) covering. A t-(v, k, λ) covering (X, B) is optimal if |B| = Cλ(v, k, t). If λ = 1, then write C(v, k, t) for C1(v, k, t). 1.3 Examples Optimal coverings for certain parameter sets t-(v, k, λ). mój 9 ≤ C(42,25,3) ≤ 10 jest 10-linni mojego autorstwa ale według teorii może być -->9-linii[minimum number of blocks ] ale często to -->no exist edit: Ty nie jesteś -->prosty chłopak z gminu a nawet jeśli ..... to masz wysoki poziom intelektualny choć to jedno drugiemu wbrew pozorom ![]() --> nie zaprzecza --- wpis edytowano 2025-02-03 08:10 --- |
2025-02-03 (09:44)![]() Data rejestracji: 2021-02-25 Ilość postów: 2582 ![]() | wpis nr 1 551 135 [ CZCIONKA MONOSPACE ] 777ch, bardzo dziękuję za odpowiedź. Jak zwykle w punkt. Pozdrawiam. |
2025-02-03 (13:58)![]() Data rejestracji: 2016-05-12 Ilość postów: 8686 ![]() | wpis nr 1 551 170 [ CZCIONKA MONOSPACE ] 777ch> Udało mi się ciut przyspieszyć obliczanie braków ![]() Zmodyfikowałem tworzenie tablicy adresów: kombinacji = kombinuj(liczb, gwar) For x = 1 To gwar For y = 1 To liczb - gwar + x If x = 1 Then adresy(y, x) = kombinacji - kombinuj(liczb - y, gwar - x + 1) Else adresy(y, x) = kombinuj(liczb - y, gwar - x + 1) End If Next Next W związku z nią w poszczególnych Case trzeba zmienić linie odnotowujące braki: w Case 10: braki(adresy(L1, 1) - adresy(L2, 2) - adresy(L3, 3) - adresy(L4, 4) - adresy(L5, 5) - adresy(L6, 6) - adresy(L7, 7) - adresy(L8, ![]() w Case 9: braki(adresy(L1, 1) - adresy(L2, 2) - adresy(L3, 3) - adresy(L4, 4) - adresy(L5, 5) - adresy(L6, 6) - adresy(L7, 7) - adresy(L8, ![]() i dalej odpowiednio. Zysk na czasie jest widoczny. Jak to pisałeś niby nic a jednak coś ![]() --- wpis edytowano 2025-02-03 14:02 --- |
2025-02-03 (15:15)![]() Data rejestracji: 2016-05-12 Ilość postów: 8686 ![]() | wpis nr 1 551 176 [ CZCIONKA MONOSPACE ] c.d. Dla przykładu dla Case 7 dotychczas linia naliczająca braki wyglądała tak: braki(kombinacji - adresy(L1, 1) - adresy(L2, 2) - adresy(L3, 3) - adresy(L4, 4) - adresy(L5, 5) - adresy(L6, 6) - adresy(L7, 7), 1) = 1 Obecnie wygląda tak: braki(adresy(L1, 1) - adresy(L2, 2) - adresy(L3, 3) - adresy(L4, 4) - adresy(L5, 5) - adresy(L6, 6) - adresy(L7, 7), 1) = 1 Jest o jedno odejmowanie mniej, które zostało wykonane już na etapie tworzenia tablicy adresów. Przy milionach takich operacji ten "drobiażdżek" odgrywa istotną rolę ![]() kleszek> U mnie Maksymalne n przed błędem 'Out of Memory': 398 760 424 Niestety musiałem zacząć test od low = 100 000 000, a nie od 1 000 000 000 --- wpis edytowano 2025-02-03 15:29 --- |
2025-02-03 (15:47)![]() Data rejestracji: 2005-11-07 Ilość postów: 22656 ![]() | wpis nr 1 551 178 [ CZCIONKA MONOSPACE ] Hej na razie jestem w podróży za godzinkę będę. |
| Dodaj wpis w tym temacie | Spis tematów | Wyniki lotto | Strona: 1 2 ... 533 534 535 ... 554 555 Wyślij wiadomość do admina |