Forum strony www.multipasko.pl [Regulamin]


Dodaj wpis w tym temacie
Spis tematów
Login:

Hasło:
Strona: 1 2 ... 517 518 519 ... 554 555
Wyślij wiadomość do admina

Przewiń wpisy ↓

moje ... oprogramowanie

2025-01-14 (08:52)

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

14865
wpis nr 1 547 425
[ CZCIONKA MONOSPACE ]

Ufff starość nie radość

Wracając do Dylonga to nie ma się co dziwić, że wychodziły mi bzdury po uruchomieniu jego procedury.
Nie mając funkcji KOMBINACJE i SILNIA podmieniłem w procedurze na swoją funkcję kombinuj.
I wychodziły bzdurne kody.
Nie mogłem zrozumieć o co chodzi, przecież ona działa u mnie poprawnie.
Po wielu analizach prawda okazała się zabawna.
Parametry do funkcji KOMBINACJE, przekazywane są jako k po n zamiast n po k
Sprawdź

Jak zamienię kolejność parametrów, to procedura działa poprawnie:

If (n - tabliczb(0, xx - 1)) > (k - xx) Then pozycja = pozycja - kombinuj(n - tabliczb(0, xx - 1), (k + 1) - xx)

:)

--- wpis edytowano 2025-01-14 09:00 ---

2025-01-14 (08:59)

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

1386
wpis nr 1 547 426
[ CZCIONKA MONOSPACE ]

ok sprawdzę
2025-01-14 (09:13)

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

1386
wpis nr 1 547 430
[ CZCIONKA MONOSPACE ]

tak tworzy kod

1 5 20 21 22 27 80

'oczywiście step jest : for up to down

k = [7], n = 80] ,csn w toku = 70654263
k = [7], n = 80] ,csn w toku = 2969407978
k = [7], n = 80] ,csn w toku = 3170767528
k = [7], n = 80] ,csn w toku = 3176229040
k = [7], n = 80] ,csn w toku = 3176684166
k = [7], n = 80] ,csn w toku = 3176715022
k = [7], n = 80] ,csn w toku = 3176716400
csn zapisany: 70654263


czyli tak
1 5 20 21 27 28 29 30 31 33 37 49

krok nr:{ 12}--> k = [12], n = 49] ,csn w toku = 14898434202
krok nr:{ 11}--> k = [12], n = 49] ,csn w toku = 84566968670
krok nr:{ 10}--> k = [12], n = 49] ,csn w toku = 92236307802
krok nr:{ 9}--> k = [12], n = 49] ,csn w toku = 92256337812
krok nr:{ 8}--> k = [12], n = 49] ,csn w toku = 92263244712
krok nr:{ 7}--> k = [12], n = 49] ,csn w toku = 92263564482
krok nr:{ 6}--> k = [12], n = 49] ,csn w toku = 92263680762
krok nr:{ 5}--> k = [12], n = 49] ,csn w toku = 92263719522
krok nr:{ 4}--> k = [12], n = 49] ,csn w toku = 92263731150
krok nr:{ 3}--> k = [12], n = 49] ,csn w toku = 92263734210
krok nr:{ 2}--> k = [12], n = 49] ,csn w toku = 92263734770
krok nr:{ 1}--> k = [12], n = 49] ,csn w toku = 92263734836
csn zapisany: 14898434202






'-- początek słabego czasu .. by trzeba zastosować coś szybszego--------

For xx = k To 1 Step -1
If (n - tabliczb(0, xx - 1)) > (k - xx) Then pozycja = pozycja - KOMBINACJE((k + 1) - xx, n - tabliczb(0, xx - 1))
Cells(xx + 2, 37) = "k = [" & k & "], n = " & n & "] ,csn w toku = " & pozycja '<<-------------dodane
Next xx
'-- koniec słabego czasu

tabdek(z - 1, 0) = pozycja
Cells(k + 3, 37) = "csn zapisany: " & pozycja'<<-------------dodane
Next z

--- wpis edytowano 2025-01-14 09:25 ---

2025-01-14 (09:23)

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

14865
wpis nr 1 547 433
[ CZCIONKA MONOSPACE ]

Ale to nie jest rozwiązanie problemu kombinacji bo:
KOMBINACJE((k + 1) - xx, n - tabliczb(0, xx - 1))

(k + 1) - xx to "k", a
n - tabliczb(0, xx - 1) to "n"

więc procedura przekazuje do funkcji parametry (k po n).
To że funkcja je wewnątrz siebie zamienia, nie zmienia faktu błędnego przekazywania parametrów

Z moją funkcją kombinuj taki warunek działa poprawnie:

If (n - tabliczb(0, xx - 1)) > (k - xx) Then pozycja = pozycja - kombinuj(n - tabliczb(0, xx - 1), (k + 1) - xx)

--- wpis edytowano 2025-01-14 09:29 ---

2025-01-14 (09:28)

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

1386
wpis nr 1 547 435
[ CZCIONKA MONOSPACE ]

No tak

fair_play
Ja muszę ....co innego teraz męczyć

-------
... Ty coś pozmieniasz .....swoje dostawisz
coś usuniesz
i wyjdzie ........ jeszcze coś ciekawszego
2025-01-14 (09:33)

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

14865
wpis nr 1 547 436
[ CZCIONKA MONOSPACE ]


Nie można kombinować 14 po 42 tylko 42 po 14
2025-01-14 (09:43)

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

14865
wpis nr 1 547 440
[ CZCIONKA MONOSPACE ]


No właśnie:
k = 12 n = 49
i do funkcji przekazujesz KOMBINACJE(12 po 49) zamiast kombinuj(49 po 12)
2025-01-14 (09:53)

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

1386
wpis nr 1 547 444
[ CZCIONKA MONOSPACE ]

1 ,5 ,20 ,21 ,27 ,28 ,29 ,30 ,31 ,33 ,37 ,49

xx = [1] krok nr:{ 1.. a więc {n - tabliczb(0, xx - 1)) > (k - xx)} to mamy .. 1 > 11 ..,w toku = 22595200368 ,
xx = [2] krok nr:{ 2.. a więc {n - tabliczb(0, xx - 1)) > (k - xx)} to mamy .. 5 > 10 ..,w toku = 14925861236 , , , , , , ,
xx = [3] krok nr:{ 3.. a więc {n - tabliczb(0, xx - 1)) > (k - xx)} to mamy .. 20 > 9 ..,w toku = 14905831226 , , , , , , ,
xx = [4] krok nr:{ 4.. a więc {n - tabliczb(0, xx - 1)) > (k - xx)} to mamy .. 21 > 8 ..,w toku = 14898924326 , , , , , , ,
xx = [5] krok nr:{ 5.. a więc {n - tabliczb(0, xx - 1)) > (k - xx)} to mamy .. 27 > 7 ..,w toku = 14898604556 , , , , , , ,
xx = [6] krok nr:{ 6.. a więc {n - tabliczb(0, xx - 1)) > (k - xx)} to mamy .. 28 > 6 ..,w toku = 14898488276 , , , , , , ,
xx = [7] krok nr:{ 7.. a więc {n - tabliczb(0, xx - 1)) > (k - xx)} to mamy .. 29 > 5 ..,w toku = 14898449516 , , , , , , ,
xx = [8] krok nr:{ 8.. a więc {n - tabliczb(0, xx - 1)) > (k - xx)} to mamy .. 30 > 4 ..,w toku = 14898437888 , , , , , , ,
xx = [9] krok nr:{ 9.. a więc {n - tabliczb(0, xx - 1)) > (k - xx)} to mamy .. 31 > 3 ..,w toku = 14898434828 , , , , , , ,
xx = [10] krok nr:{ 10.. a więc {n - tabliczb(0, xx - 1)) > (k - xx)} to mamy .. 33 > 2 ..,w toku = 14898434268 , , , , , ,
xx = [11] krok nr:{ 11.. a więc {n - tabliczb(0, xx - 1)) > (k - xx)} to mamy .. 37 > 1 ..,w toku = 14898434202 , , , , , ,
xx = [12] krok nr:{ 12.. a więc {n - tabliczb(0, xx - 1)) > (k - xx)} to mamy .. 49 > 0 ..,w toku = 14898434202

csn zapisany: 14898434202

tak to hula ......... jak zauważyłeś nieprawidłowo
chociaż wynik jest poprawny ..zdaje mi się

--- wpis edytowano 2025-01-14 09:54 ---

2025-01-14 (10:08)

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

14865
wpis nr 1 547 445
[ CZCIONKA MONOSPACE ]


Uparciuch

Przecież napisałem, że wszystkie kody zaprezentowanych zestawów liczb są poprawne.
Kwestionuję tylko kolejność przekazywanych do funkcji kombinacji parametrów, nie 12 po 49 tylko 49 po 12.
2025-01-14 (10:21)

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

1386
wpis nr 1 547 451
[ CZCIONKA MONOSPACE ]

44 45 46 47 48 49

xx=[1]kroknr:6..kod:{n-tabliczb(0,xx-1))>(k-xx)}..wynik:44>5..,wtoku=13983816
xx=[2]kroknr:5..kod:{n-tabliczb(0,xx-1))>(k-xx)}..wynik:45>4..,wtoku=13983816
xx=[3]kroknr:4..kod:{n-tabliczb(0,xx-1))>(k-xx)}..wynik:46>3..,wtoku=13983816
xx=[4]kroknr:3..kod:{n-tabliczb(0,xx-1))>(k-xx)}..wynik:47>2..,wtoku=13983816
xx=[5]kroknr:2..kod:{n-tabliczb(0,xx-1))>(k-xx)}..wynik:48>1..,wtoku=13983816
xx=[6]kroknr:1..kod:{n-tabliczb(0,xx-1))>(k-xx)}..wynik:49>0..,wtoku=13983816
csnzapisany:13983816


1 2 3 4 5 49

xx=[1]kroknr:6..kod:{n-tabliczb(0,xx-1))>(k-xx)}..wynik:1>5..,wtoku=44
xx=[2]kroknr:5..kod:{n-tabliczb(0,xx-1))>(k-xx)}..wynik:2>4..,wtoku=12271556
xx=[3]kroknr:4..kod:{n-tabliczb(0,xx-1))>(k-xx)}..wynik:3>3..,wtoku=13805495
xx=[4]kroknr:3..kod:{n-tabliczb(0,xx-1))>(k-xx)}..wynik:4>2..,wtoku=13968680
xx=[5]kroknr:2..kod:{n-tabliczb(0,xx-1))>(k-xx)}..wynik:5>1..,wtoku=13982870
xx=[6]kroknr:1..kod:{n-tabliczb(0,xx-1))>(k-xx)}..wynik:49>0..,wtoku=13983816
csnzapisany:44

co widzę to ........ jest wklejone
jak odwrócisz przekazywanie parametrów
to wklej o ile poprawne będzie .....

....... nie dam rady dwie sroki na raz
i już mam ...... kręciołkę
2025-01-14 (10:31)

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

14865
wpis nr 1 547 454
[ CZCIONKA MONOSPACE ]

Już pisałem:

If (n - tabliczb(0, xx - 1)) > (k - xx) Then pozycja = pozycja - kombinuj(n - tabliczb(0, xx - 1), (k + 1) - xx)

tylko moja funkcja kombinuj, a nie jedo KOMBINACJE.

Function kombinuj(n, k)

licznik = 1
mianownik = 1

For i = 1 To k
licznik = licznik * (n + 1 - i)
mianownik = mianownik * i
Next

kombinuj = licznik / mianownik

End Function

W VBA jest Application.WorksheetFunction.Combin(n,k)
zobacz co dostaniesz dla

Application.WorksheetFunction.Combin(49,12),
a co
Application.WorksheetFunction.Combin(12,49)

--- wpis edytowano 2025-01-14 10:39 ---

2025-01-14 (10:46)

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

1386
wpis nr 1 547 457
[ CZCIONKA MONOSPACE ]

no i git
i jest jak by nie było dobry początek
ale słabsze czasowo od twojego rozwiązania

no i Jacka dalej lepsze
choć w tym przypadku nie policzysz csn
dla par czyli 2 do np. 20-liczb
2025-01-14 (10:49)

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

1386
wpis nr 1 547 458
[ CZCIONKA MONOSPACE ]

fair_play

jak będziesz miał ochotę
to spróbuj coś po..majstrować
bo to uniwersalne jest
tyle że trzeba by podać chyba własne dane w tablicach stałych
adr0 czyli max csn dla excela bo excel duże liczby ...... nie bardzo
2025-01-14 (10:52)

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

14865
wpis nr 1 547 460
[ CZCIONKA MONOSPACE ]

"nie policzysz csn
dla par czyli 2 do np. 20-liczb"

Nie bardzo rozumiem
2025-01-14 (11:01)

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

1386
wpis nr 1 547 462
[ CZCIONKA MONOSPACE ]

No w kwestii rozwiązania od Jacka to był komentarz
u niego trzeba by tyle procedur ile liczb w sekwencji

a tu jedna procedura liczy kod csn
dla par i dla 10 liczb tez poda kod csn

twoja zresztą też jest nie tak uniwersalna jak ta
na bazie kodu od Dylonga

--- wpis edytowano 2025-01-14 11:04 ---

2025-01-14 (11:06)

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

14865
wpis nr 1 547 463
[ CZCIONKA MONOSPACE ]


Ok ale na dziś wystarczy, bo u mnie w Australii już b, późno, a spać się chce
2025-01-14 (11:41)

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

1386
wpis nr 1 547 468
[ CZCIONKA MONOSPACE ]


✌️👍

--- wpis edytowano 2025-01-14 11:41 ---

2025-01-14 (14:40)

status Jacek_K1961
Data rejestracji: 2017-03-29
Ilość postów: 8800

15220
wpis nr 1 547 487
[ CZCIONKA MONOSPACE ]

777ch Fair_play
Może jest jeszcze jakieś wyjście? Jesteście lepsi musicie się "tylko" nad tym zastanowić, bo podany przeze mnie sposób z wartościami "na stałe" w tablicach jest bardzo szybki. Dobrze by było gdyby chociaż ta cząstka z mojego sposobu na coś się Wam przydała.
Pozdrawiam

P.S. ... a w paskalu są mniejsze ograniczenia niż w Excelu?

Fakt jeżeli 20 liczb to potrzeba 19 tablic dwuwymiarowych i jedną jednowymiarową, chociaż jej się można pozbyć. Tylko dłuuuugość tych liczb.

--- wpis edytowano 2025-01-14 14:44 ---

2025-01-14 (16:30)

status Jacek_K1961
Data rejestracji: 2017-03-29
Ilość postów: 8800

15220
wpis nr 1 547 499
[ CZCIONKA MONOSPACE ]

777ch
do wpisu nr 1 547 457 cyt. "choć w tym przypadku nie policzysz csn dla par czyli 2 do np. 20-liczb"

Dla pary byłaby 1 tablica i w niej ta jedna liczba, dla mnie bez sensu, bo ja pary "doglądam" w Excelu na bieżąco, stąd moje ich pominięcie. Żadnych innych przeszkód nie ma. Siła tablic, tak intuicyjnie polega na tym, że przewaga ich szybkości powinna wzrastać wraz z ilością szukanych liczb, bo dodanie 19 liczb będzie proporcjonalnie jeszcze szybsze niż obliczenia oparte na makabrycznie wielkich silniach.

--- wpis edytowano 2025-01-14 16:38 ---

2025-01-14 (18:46)

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

14865
wpis nr 1 547 517
[ CZCIONKA MONOSPACE ]


Jak dobrze wstać, skoro świt ♫♪♫

777ch>
Wracając do naszych rozważań, coś co jest uniwersalne z natury rzeczy musi być wolniejsze od czegoś co jest partykularne
| Dodaj wpis w tym temacie | Spis tematów | Wyniki lottoStrona: 1 2 ... 517 518 519 ... 554 555
Wyślij wiadomość do admina