| Dodaj wpis w tym temacie
Spis tematów | Strona: 1 2 ... 532 533 534 ... 560 561 Wyślij wiadomość do admina |
| Przewiń wpisy ↓ | moje ... oprogramowanie |
2025-02-01 (10:10) 777chData rejestracji: 2005-11-07 Ilość postów: 23087 | wpis nr 1 550 803 [ CZCIONKA MONOSPACE ] fair_play wpis nr 1 550 636 grypa no to życzę zdrówka kolego fair_play ============================= muszę stwierdzić że Twoje rozwiązanie jest znacznie szybsze ale ....... zaimplementowałem tylko dla warranty 5 do programiku korelacje_777ch__fairplay_v4 który jest jednak takim warsztatem czyli beta na maxa bo w nim z marszu próbuję co mi wpadnie do głowy więc choc działa ,to co niektóre rzeczy --> to pomysły mocno chybione ======czas w korelacje_777ch__fairplay_v4====== ![]() C(69,25,5,5)=99,9923388441158 % brak[861] Brak {861} starszy proces by fair_play[maska] Sprawdzono zbiór = 11238513 kombinacji Gwar..[5]= 99,9923388441158 % cover=630-linii Time calculated : 0,771194703289548 ms ======czas wg nowej procedury [adresy]====== ![]() -- Gwar.5 if [5] --*1 C(69,25,5,5)=99,9923388441158 % brak[861] Brak {861} new proces by fair_play[adresy] Sprawdzono zbiór = 11238513 kombinacji Gwar..[5]= 99,9923388441158 % cover=630-linii Time calculated : 0,394106227321262 ms |
2025-02-01 (13:59) fair_playData rejestracji: 2016-05-12 Ilość postów: 8971 | wpis nr 1 550 847 [ CZCIONKA MONOSPACE ] 777ch> Dziękuję za życzenia, jest poprawa, ale choroba musi swoje potrwać Mam pytanie: Jeśli masz taki warunek: IF a=b OR c=d OR e=f OR g=h OR ......... THEN To program sprawdza wszystkie porównania czy już przy pierwszej nierówności przerywa sprawdzanie? Istotne dla kolejności ustawienia warunków. Najbardziej prawdopodobną nierówność dać na początek. |
2025-02-01 (14:20) fair_playData rejestracji: 2016-05-12 Ilość postów: 8971 | wpis nr 1 550 849 [ CZCIONKA MONOSPACE ] kleszek> poczta |
2025-02-01 (14:20) Jacek_K1961Data rejestracji: 2017-03-29 Ilość postów: 13821 | wpis nr 1 550 850 [ CZCIONKA MONOSPACE ] Fair_play Może porównaj po czasie wykonywania w pętli z milion razy. Przed daj działanie gdzie wynikiem będzie tylko A=B, potem porównaj dla ostatniego warunku np. tylko Y=Z, ale daj ich dużo ??? Jeżeli będą "takie same" to by sugerowało, że sprawdza całą linię warunków. --- wpis edytowano 2025-02-01 14:22 --- |
2025-02-01 (14:45) Jacek_K1961Data rejestracji: 2017-03-29 Ilość postów: 13821 | wpis nr 1 550 859 [ CZCIONKA MONOSPACE ] Fair_play Mnie wychodzi "ten sam"/podobny czas. 4,367s i 4,368s dla sprawdzania 1.000.000.000 --- wpis edytowano 2025-02-01 14:48 --- |
2025-02-01 (15:15) fair_playData rejestracji: 2016-05-12 Ilość postów: 8971 | wpis nr 1 550 865 [ CZCIONKA MONOSPACE ] Jacku, ile masz "OR" w linii warunku? I jak ustawisz tak dane że nie sprawdza się już pierwszy, a następnie tak, że nie sprawdza się dopiero ostatni dostajesz taki sam czas? |
2025-02-01 (15:22) Jacek_K1961Data rejestracji: 2017-03-29 Ilość postów: 13821 | wpis nr 1 550 867 [ CZCIONKA MONOSPACE ] ... a to odpowiedź z SI: W wyrażeniu typu If A=B Or C=D Or F=J Then, w zależności od używanego języka programowania, sprawdzanie warunków może różnić się nieco, ale w większości przypadków działa to w ten sposób: W większości języków programowania, takich jak VBA, Python, czy JavaScript, operator Or działa z tzw. krótkim-circuitingiem (ang. short-circuit evaluation). Oznacza to, że po napotkaniu pierwszego warunku, który jest prawdziwy, nie sprawdza się już pozostałych warunków. Przykład: Jeśli warunek A=B jest prawdziwy, wtedy pozostałe warunki (C=D i F=J) nie będą już sprawdzane, ponieważ cała instrukcja If już zostanie uznana za prawdziwą. ... a ja tak to zrobiłem: Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click Dim A, B, C, D, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z As Integer Dim mainStopwatch As Stopwatch = New Stopwatch() A = 31 : B = 1 : C = 2 : D = 3 : F = 4 : G = 5 : H = 6 : I = 7 : J = 8 : K = 9 : L = 10 : M = 11 : N = 12 : O = 13 : P = 14 : Q = 14 : R = 16 : S = 17 : T = 18 : U = 19 : V = 20 : W = 21 : X = 22 : Y = 23 : Z = 24 mainStopwatch.Start() For xxx = 1 To 1000000000 If A = B Or B = C Or C = D Or D = F Or F = G Or G = H Or H = I Or I = J Or J = K Or K = L Or L = M Or M = N Or N = O Or O = P Or P = Q Then ' NIC End If Next mainStopwatch.Stop() MsgBox("Czas całkowity: " & mainStopwatch.Elapsed.TotalSeconds & " s") ' 4,367 S End Sub Na początku A=1, drugi raz zmieniłem A=31 a Q na 14 Najlepiej dla pewności spróbuj sam. Czas dla A=B 4,355 i P=Q 4,368 --- wpis edytowano 2025-02-01 15:28 --- |
2025-02-01 (15:26) fair_playData rejestracji: 2016-05-12 Ilość postów: 8971 | wpis nr 1 550 868 [ CZCIONKA MONOSPACE ] 777ch> Ale mi chodzi o to czy jeżeli w linii warunków miałbyś 100 "OR" to sprawdzanie takiej linii trwałoby tyle samo czasu gdy nie sprawdzałby się już pierwszy warunek czy jak dopiero ostatni. No widzę że jeśli chodzi o VBA to Jacek z pomocą SI zaspokoił moją ciekawość. Czy tak samo jest w pascalu? --- wpis edytowano 2025-02-01 15:30 --- |
2025-02-01 (15:29) Jacek_K1961Data rejestracji: 2017-03-29 Ilość postów: 13821 | wpis nr 1 550 869 [ CZCIONKA MONOSPACE ] Gości mam. Sorrki. |
2025-02-01 (16:08) 777chData rejestracji: 2005-11-07 Ilość postów: 23087 | wpis nr 1 550 875 [ CZCIONKA MONOSPACE ] Ja na dziś już kończę Jutro przy ..porannej ⏱️kawie zajrzę 💻 |
2025-02-01 (18:48) fair_playData rejestracji: 2016-05-12 Ilość postów: 8971 | 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) 777chData rejestracji: 2005-11-07 Ilość postów: 23087 | 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) MultiTestData rejestracji: 2020-08-05 Ilość postów: 6561 | 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) 777chData rejestracji: 2005-11-07 Ilość postów: 23087 | 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) 777chData rejestracji: 2005-11-07 Ilość postów: 23087 | 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) kleszekData rejestracji: 2006-05-27 Ilość postów: 4983 | 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) fair_playData rejestracji: 2016-05-12 Ilość postów: 8971 | 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) 777chData rejestracji: 2005-11-07 Ilość postów: 23087 | 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) 777chData rejestracji: 2005-11-07 Ilość postów: 23087 | 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) kleszekData rejestracji: 2006-05-27 Ilość postów: 4983 | wpis nr 1 551 004 [ CZCIONKA MONOSPACE ] fair_play, odbierz pocztę |
| | Dodaj wpis w tym temacie | Spis tematów | Wyniki lotto | Strona: 1 2 ... 532 533 534 ... 560 561 Wyślij wiadomość do admina |