Forum strony www.multipasko.pl [Regulamin]


Dodaj wpis w tym temacie
Spis tematów
Login:

Hasło:
Strona: 1 2 ... 533 534 535 ... 554 555
Wyślij wiadomość do admina

Przewiń wpisy ↓

moje ... oprogramowanie

2025-02-01 (16:08)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 22656

1386
wpis nr 1 550 875
[ CZCIONKA MONOSPACE ]

Ja na dziś już kończę
Jutro przy ..porannej ⏱️kawie
zajrzę 💻
2025-02-01 (18:48)

status fair_play
Data rejestracji: 2016-05-12
Ilość postów: 8686

14865
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)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 22656

1386
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)

status MultiTest
Data rejestracji: 2020-08-05
Ilość postów: 5909

16235
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.

zdjęcie
2025-02-02 (09:07)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 22656

1386
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)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 22656

1386
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)

status kleszek
Data rejestracji: 2006-05-27
Ilość postów: 4979

2047
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)

status fair_play
Data rejestracji: 2016-05-12
Ilość postów: 8686

14865
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)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 22656

1386
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)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 22656

1386
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)

status kleszek
Data rejestracji: 2006-05-27
Ilość postów: 4979

2047
wpis nr 1 551 004
[ CZCIONKA MONOSPACE ]

fair_play, odbierz pocztę
2025-02-02 (15:44)

status fair_play
Data rejestracji: 2016-05-12
Ilość postów: 8686

14865
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)

status kleszek
Data rejestracji: 2006-05-27
Ilość postów: 4979

2047
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)

status kostka1zn
Data rejestracji: 2021-02-25
Ilość postów: 2582

16333
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)

status kostka1zn
Data rejestracji: 2021-02-25
Ilość postów: 2582

16333
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)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 22656

1386
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)

status kostka1zn
Data rejestracji: 2021-02-25
Ilość postów: 2582

16333
wpis nr 1 551 135
[ CZCIONKA MONOSPACE ]

777ch,

bardzo dziękuję za odpowiedź.
Jak zwykle w punkt.

Pozdrawiam.
2025-02-03 (13:58)

status fair_play
Data rejestracji: 2016-05-12
Ilość postów: 8686

14865
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, - adresy(L9, 9) - adresy(l10, 10), 1) = 1

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, - adresy(L9, 9), 1) = 1
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)

status fair_play
Data rejestracji: 2016-05-12
Ilość postów: 8686

14865
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)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 22656

1386
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 lottoStrona: 1 2 ... 533 534 535 ... 554 555
Wyślij wiadomość do admina