Forum strony www.multipasko.pl [Regulamin]


Dodaj wpis w tym temacie
Spis tematów
Login:

Hasło:
Strona: 1 2 ... 20 21 22 ... 37 38
Wyślij wiadomość do admina

Przewiń wpisy ↓

Unikatowe KOMBINACJE.. od wielu los. oczekujące na min. wypłacalne

2022-07-13 (14:13)

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

16235
wpis nr 1 426 623
[ CZCIONKA MONOSPACE ]

Jacek_K1961

Ja też kiedyś zaczynałem od inputów i msgboxów ...

Można i inputu uzyć do wczytywana każdej linii pliku.txt umieszczając go w pętli Do while
not EOF z podaniem nr pliku i pamiętając że po wyjściu z petli trzeba jeszcze na końcu uzyć
instrukcji Close z numerem pliku.
Pętla po kolei czyta linie więc można je policzyć wiersz=wiersz +1

Zamiast tego wszystkiego można użyć jednej instrukcji Wczytaj-Wszytstkie-Linie_i_zlicz

....
777ch wskazał że musisz mieć tablicę wszystkich 300500200 szóstek z 80 liczb z zaznaczeniem która została wylosowana,
więc na poczatku najprostsza droga do tego aby wczytać prawidłowy plik losowań.

--- wpis edytowano 2022-07-13 14:14 ---

2022-07-13 (15:09)

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

15220
wpis nr 1 426 630
[ CZCIONKA MONOSPACE ]

MultiTest
Zgadza się, ale w większości wypadków wszystkich nie trzeba wczytywać. 777ch dla szukania 6na10z80 zawęził wczytywane do ostatnich 1700 losowań. Dopiero te, które przekroczą tę magiczną granice 1700 sprawdza "ręcznie", chyba w Excelu. Z tego co podał Sindbad układ o "oczko" dłuższy, czyli 7na10z80 już bez wczytania wszystkich losowań nie da rady, bo znalazł 7-ki, które w ogóle jeszcze nie padły.
P.S .... a co sądzisz o wczytaniu wartości z moich tablic pomocniczych we fragmencie programu jako stałe? np. T03_4_8 = dajmy na to 674566. Trochę, by ich było dla 6na10z80 około 400 linii kodu po 80 wartości (32.000 stałych), ZAMIAST tablic. Czy to by mogło mieć wpływ na szybkość? Z tej obecnej prędkości jestem zadowolony, ale gdybym chciał sprawdzić 7na10z80 Sindbada, to warto by urwać jeszcze "cosik".
Pozdrawiam

--- wpis edytowano 2022-07-13 15:20 ---

2022-07-13 (15:23)

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

16235
wpis nr 1 426 632
[ CZCIONKA MONOSPACE ]

To nie tak.
Poprawa zasada jest taka
Wczytaj plik z losowaniami
( masz gotowy plik ze wszystkimi losowania przecież nie bedziesz go dzielił )
Wybierz zakres : na 1700 losowań
To sa operacje milisekundowe.
te 300500200 szóstek będzie szybciej sprawdzone bo zamiast na 13000 będzie 1700
ale i tak według algorytmu 777ch trzeba sprawdzić wylosowanie każdej szóstki z 300500200.

Pomysły zostaw na później jesli chcesz dobrze programować.


--- wpis edytowano 2022-07-13 15:26 ---

2022-07-13 (15:37)

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

15220
wpis nr 1 426 633
[ CZCIONKA MONOSPACE ]

cyt. "jak pisał 777ch. Pierwsza tablica to wszystkie 6-ki z 80 czyli 300500200. W tej tablicy są zaznaczone jako "1" wszystkie 6-ki, które były trafione w ostatnich 1700 losowaniach".
... 6-ki z ostatnich 1700 losowań, więc prawie 12.000 można przepuścić LineInput.

P.S. Mam wrażenie, że jak włączam licznik 300500200 kombinacji 1,2,3,4,5,6 do 75,76,77,78,79,80 wklejanych w tablicę to jest to ciut ponad sekundę, a jak wczytuję wszystkie losowania to trwa to z 5-7 sekund. Tyle, że u mnie jedno losowanie to 102 dane. 1-sza to nr i data losowania, 2-ga to plus, potem 20 wylosowanych liczb i 80 w postaci przerobionej na 0/1.
102 to chyba podświadomie na cześć czołgu Rudy 102. ha ha ha.

--- wpis edytowano 2022-07-13 15:47 ---

2022-07-13 (16:00)

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

15220
wpis nr 1 426 636
[ CZCIONKA MONOSPACE ]

MultiTest
Tylko jakby odczyt stałej był o 1/5 szybszy od odczytu z tablicy to dla układu sprawdzanego przez Sindbada byłoby już znaczącą różnicą. Już tak mam, że kombinuję i na to nic nie poradzę.
P.S. Jeszcze miesiąc temu nie miałem pojęcia o różnicy czasowej między odczytaniem z pliku 102 zmiennych, a odczytaniem całej linii, bo i też nigdy nie robiłem czegoś takiego na takiej ilości.

--- wpis edytowano 2022-07-13 16:02 ---

2022-07-13 (16:29)

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

1386
wpis nr 1 426 641
[ CZCIONKA MONOSPACE ]

Jacek_K1961 napisałeś:
"Z tego co podał Sindbad układ o "oczko" dłuższy, czyli 7na10z80 już bez wczytania wszystkich losowań nie da rady, bo znalazł 7-ki, które w ogóle jeszcze nie padły...."

=============
Zastanów się !

Tablica utworzona do "zapamiętania",może być "idealna" ,
zaraz o tym ideale.......
bo twórz tak dużą tablicę ,na ile pozwoli "środowisko"
nie wchodząc w szczegóły ,jeśli tablica mieści wszystkie adresy
czyli indeksy dla poszukiwanych ......4,5,6,czy nawet 7/10
to jej zapełnienie umożliwia ci wyszukanie dokładnie spełniających warunek
jaki przyjmiesz do poszukiwań np dla 6z10

bo zauważ że pod --> adresem6 [index] możesz wpisać 1
albo dokładnie tyle ile dana szóstka wystąpiła ,
w tym celu musisz podnosić wartość w tablicy do max=255 ...bo na tyle pozwoli ci tablica of byte
albo jesli masz tablicę np dla 4 to możesz użyć tablicy of integer
bo to niewiele danych czyli możliwości wiele .......... np tablica 4 wymiarowa

ale ......możesz przecież pomijać zapis np 7-ek ,
których adres jest za duży dla Twojej tablicy ,
i wtedy uzyskasz dane wypisowe np dla 12000 losowań
z sekwencjami 7-ek ,których nie wyłapałeś ,
czyli po zweryfikowaniu zapisu ,takie sekwencje 10-ek po prostu odrzucisz,
albo możesz przecież sprawdzać w liczydle 10-ek
adresy 7-ek ,zgodne z twoim wymiarem ,a jesli trafisz na adres 7-ki
który jest "za duży " dla Twojej tablicy ,to kosztem czasu obliczeń
możesz dostawić petlę po np. tych 12000 losowań
tylko i wyłącznie dla sekwencji 10-ki,której jakiś adres dla 7-ki przekracza Twój limit tablicy7

albo możesz użyć jakiegoś "triku"
aby "odnotować " wysoki adres w niskim adresie
wykorzystując zapis 1~255 ...... czyli to na co pozwoli ci
np: TAB10: array [0 .. TWÓJMAX] of Byte ;

JA MAM W PROGRAMIE jak niżej:
maska: array [0 .. 1799579065] of Byte ;

to ze względu na to że zliczam adresy występowania
dla np 2z3,2z4,3z3,3z4 itd ........ związane z wkładaniem niedomiarowych wystapień
do pomocniczej tablicy Mutter
z której potem próbkuje ......pasowanie sekwencji z jednoczesnym sprawdzaniem gwarancji

Tak czy siak ......... dobry pomysł ,
i rzetelne wykonanie w kodzie,
i uzyskasz to co chcesz.

Jak policzę te 7z10 to wstawię
zrobię to dla ostatnich 12000 losowań,
uzyskując zapewne cirka......jakieś 1000 z haczykiem
sekwencji 10-ek ,których oczekiwanie wynosi >12000
a wśród nich będą takie które nie złapały nigdy 7z10
i takie które złapały więcej jak 10x 7z10
ale ....w tych pierwszych 1976 losowaniach,
bo teraz to 13976-losowań Multi,
a ja policzę dla ostatnich 12000 od ostatniego ,
czyli tyle zassam do pliku
aby uzyskać Ranking Oczekiwania dla cirka 1000~1500 sekwencji 10-ek

no to tyle ......
nie lubię pisać

narka
2022-07-13 (16:51)

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

1386
wpis nr 1 426 646
[ CZCIONKA MONOSPACE ]

Skąd Ci sie wzięlo 12 tysiecy ?

Jak robisz plik z losowaniami skoro dodatkowo przerabiasz na 0/1 ?
Ręcznie ?

I co właściwie robi twój program poza wstawieniem tablicy i załadowaniem pliku

======================
12 tys losowań dla wyłapania cirka 1000~1500 sekwencji 10-ek
dla warunku brak 7w10

plik z losowaniami to zrzut 20 liczb z mojego programu w excelu
od ostatniego do ile wskażę


I co właściwie robi twój program

Program w zasadzie poprawia plik załadowany
do gwarancji maxymalnej dla 2,3,4,5,6,7,8 if hit= 2,3,4,5,6,7,8,9,10
czyli to program pokryciowy .....
ale ponieważ pokrycie np 4-ek czy 5-ek czy np 7-ek
to powolny proces.......
to wykorzystuję tablice pomocnicze ,do których ładuję
np takie sekwencje 3-ek ,z niedomiarem 2z3 ........ itd itp
i tam także mam 2,3,4,5,6,7z 10 czy inne konfiguracje



edit:
Właściwie sekwencje ładują się same,
bo to automat który po poprawieniu gwarancji ,
sam znajduje inny rozkład ,
bo wiele sie zmienia w czasie ......poprawiania.

--- wpis edytowano 2022-07-13 17:00 ---

2022-07-13 (17:52)

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

15220
wpis nr 1 426 652
[ CZCIONKA MONOSPACE ]

Ja rozumiem, że te 12.000 na tej samej zasadzie co zliczanie układów 6na10z80 z wybraniem ostatnich 1700, aby pokazało te które czekają ponad te 1700 losowań. Poza tym szukanie tylko tych, które w ogóle nie padły, jeżeli nie wiemy ile zajmuje to czasu byłoby trochę marnowaniem pracy. Jeżeli zgadza się wynik podany przez Sindbada, coś koło 40-tu układów to ja też bym wolał wyszukać te z ponad ONT 12.000 i wprowadzić do excela w celu obserwowania na bieżąco. Jeżeli coś obliczam kwadrans, to sobie mogę darować i raz na tydzień wyszukać w razie potrzeby nowe czekające, a jeżeli miałbym to liczyć kilkanaście godzin, to lepiej zapisać nawet i z 10 tysięcy 10-ek do pliku txt. Posortowane czasem oczekiwania doklejać (jeżeli nie padły w międzyczasie) na miejsce tych najwyższych obserwowanych w arkuszu, a usuniętych po trafieniu w losowaniach, które odbyły się już po wyszukiwaniach.

--- wpis edytowano 2022-07-13 18:06 ---

2022-07-13 (18:07)

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

1386
wpis nr 1 426 653
[ CZCIONKA MONOSPACE ]

Dokładnie.
Raz policzyć .......,
nawet kilkanaście godzin,

a potem sobie te dane
dowolnie sprawdzać,pod takim kątem jak kto chce ,
nawet na zasadzie zwrotów w pln w dowolnych przedziałach czasowych.
Wstawię jak policzę .[te --> 7/10]


A PROGRAM .... to rozwijana ciągle wersja tego:
2022-07-13 (18:25)

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

1386
wpis nr 1 426 658
[ CZCIONKA MONOSPACE ]

Jacek_K1961 .......możesz odpalić jak potrafisz w excelu
ja używam tylko i wyłącznie excel 2003

baza losowań w -->Arkusz2
obrabiane dane w --> Arkusz62
Stara procedura ....ale działa z 2009 roku


Sub sprawdzamy10tkizpliku()
'
' wlasne4 Makro
' Makro zarejestrowane 2009-03-27, autor leo777ch
'
Dim nn As Long
Dim maxliczB As Long
Dim TABDANE() As Long
Arkusz62.Activate

Range("A1:An65536") = ""
Range("A1:An65536").Interior.ColorIndex = none
Set objFSO = CreateObject("Scripting.FileSystemObject")
Const ForReading = 1



i = 0
ReDim TABDANE(650536, 9)

Set objFile = objFSO.OpenTextFile(ThisWorkbook.Path & "/" & "Dane brak 7w10.txt", ForReading)

Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
arrLine = Split(strLine, " ")

If arrLine(0) < 1 Then MsgBox " problem w linii " & i
TABDANE(i, 0) = arrLine(0)
TABDANE(i, 1) = arrLine(1)
TABDANE(i, 2) = arrLine(2)
TABDANE(i, 3) = arrLine(3)
TABDANE(i, 4) = arrLine(4)
TABDANE(i, 5) = arrLine(5)
TABDANE(i, 6) = arrLine(6)
TABDANE(i, 7) = arrLine(7)
TABDANE(i, = arrLine(8)
TABDANE(i, 9) = arrLine(9)
i = i + 1
' If i = 65000 Then MsgBox "Ilosc kombinacji 10-ek wynosi aktualnie 65000,przerywam dalsze pobieranie z pliku"
'If i = 65000 Then GoTo 1

Loop
1
'Range(Cells(1, 1), Cells(i, 10)) = TABDANE
objFile.Close

MsgBox " Wczytano " & i & " kombinacji 10-ek"

Cells(1, 1).Select


'
Dim l1, l2, l3, l4, l5, l6, l7, l8, l9, l10 As Integer
Dim t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10 As Integer
Dim s As Integer, z As Long
Dim LICZB_LOSOWANYCH As Integer
Dim LICZB_GRY As Integer
Dim vlos As Long
Dim los As Long
Dim LICZBA As Integer
Dim tabwyn() As Variant
Dim tabgps() As Variant
Dim tabtr0() As Variant

Dim ont As Variant
Dim SKREsLEn As Byte
SKREsLEn = Application.WorksheetFunction.CountA(Range("A2:T2"))

vlos = Application.WorksheetFunction.CountA(Arkusz2.Range("A1:A65536"))
nn = 0

LICZB_LOSOWANYCH = Application.WorksheetFunction.CountA(Arkusz2.Range("C1:af1"))
LICZB_GRY = Application.WorksheetFunction.max(Arkusz2.Range("C1:af5000"))

tabwyn = Range(Arkusz2.Cells(1, 3), Arkusz2.Cells(vlos, 120)).value





'gps losowan
ReDim tabgps(vlos, LICZB_GRY)

For los = vlos To 1 Step -1
For LICZBA = 1 To LICZB_GRY



tabgps(los, tabwyn(los, LICZBA)) = tabwyn(los, LICZBA)
If tabgps(los, tabwyn(los, LICZBA)) >= 1 Then tabgps(los, tabwyn(los, LICZBA)) = 1



Next LICZBA

Next los
Range(Cells(1, 41), Cells(65536, 41)) = ""

'obliczenie oczekiwania na 7-trafne
For z = 1 To i
l1 = TABDANE(z, 0)
l2 = TABDANE(z, 1)
l3 = TABDANE(z, 2)
l4 = TABDANE(z, 3)
l5 = TABDANE(z, 4)
l6 = TABDANE(z, 5)
l7 = TABDANE(z, 6)
l8 = TABDANE(z, 7)
l9 = TABDANE(z,
l10 = TABDANE(z, 9)



ont = 0
s = 0
For spr = vlos To 1 Step -1


s = tabgps(spr, l1) + tabgps(spr, l2) + tabgps(spr, l3) + tabgps(spr, l4) + tabgps(spr, l5) + tabgps(spr, l6) _
+ tabgps(spr, l7) + tabgps(spr, l8) + tabgps(spr, l9) + tabgps(spr, l10)


If s >= 7 And ont = 0 Then ont = vlos - spr 'obliczenie oczek na 7-trafne

'If s >= 7 Or ont < 7000 Then Exit For
If (ont >= 12001) Or ((ont = 0) And (spr = 1) And (l1 >= 1)) Then
nn = nn + 1
Cells(nn, 1) = l1
Cells(nn, 2) = l2
Cells(nn, 3) = l3
Cells(nn, 4) = l4
Cells(nn, 5) = l5
Cells(nn, 6) = l6
Cells(nn, 7) = l7
Cells(nn, = l8
Cells(nn, 9) = l9
Cells(nn, 10) = l10
If ont = 0 Then
ont = "Brak"
End If
Cells(nn, 41) = ont
Cells(nn, 1).Select
End If
If s >= 7 Then Exit For
Next spr


Next z
'Range(Cells(1, 41), Cells(nn + 1, 41)) = TABONT 'wypis ont

End Sub

no ......to tyle na dziś

--- wpis edytowano 2022-07-13 18:26 ---

2022-07-13 (19:04)

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

15220
wpis nr 1 426 663
[ CZCIONKA MONOSPACE ]

777ch
Excela mam 2019, ale używam tylko do podstawowych obliczeń. Z makrami dałem sobie spokój jak wywalili w robocie Office i wstawili darmowe Open itp. a z VBA jakoś nigdy nawet nie próbowałem.
P.S. ... ale mam pytanko, po co tracić czas na wyświetlanie migających kombinacji? Ja w licznikach na samym początku wstawiam wyświetlanie, żeby zobaczyć, że chodzi, a potem wyświetlam tylko zmianę 1-szej, lub 2-ej liczby z układu, bo to strasznie obciąża program.
2022-07-13 (19:11)

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

1386
wpis nr 1 426 666
[ CZCIONKA MONOSPACE ]

VBA
to jakby przedszkole basica

jeśli nie jesteś z tym vba "za pan brat" to już.....poległeś......na starcie
--> w programowaniu w Basicu

--- wpis edytowano 2022-07-13 19:16 ---

2022-07-13 (19:17)

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

15220
wpis nr 1 426 667
[ CZCIONKA MONOSPACE ]

zdjęcie

zdjęcie

W takich arkuszach "obserwuję" wyniki, a obliczenia tylko w VBasic'u. Miałem wersję swojego programu z przyciskami wyboru, np. 3z5, 4z5, 5z5, 4z6, 5z6 itd. A grafika? Właściwie żadna całe okienko to tylko przyciski jak powyżej. Wszystko zostawiłem i piszę od nowa po Twoich uwagach z tymi tablicami z true/false.
2022-07-13 (19:19)

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

1386
wpis nr 1 426 668
[ CZCIONKA MONOSPACE ]

po co tracić czas na wyświetlanie migających kombinacji?

no ale.......wszystko można wyłączyć
a po to opcja wyświetlania ,
żeby widzieć co się "dzieje"
2022-07-13 (19:20)

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

15220
wpis nr 1 426 670
[ CZCIONKA MONOSPACE ]

c.d. Piszę od nowa, bo jak zobaczyłem, że 6na10z80 liczyło mi po staremu kilkanaście godzin, a teraz spoko w 20 minut to nie mam wyboru.
Ja tylko patrzę czy zaczyna liczyć, a jak się upewniam że wszystko przeskakuje tak jak należy to zostawiam wyświetlanie dla góra pierwszych dwóch - trzech liczb w układzie.

--- wpis edytowano 2022-07-13 19:23 ---

2022-07-13 (19:24)

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

1386
wpis nr 1 426 672
[ CZCIONKA MONOSPACE ]

W moim excelu są 62 arkusze
mały screen

a w każdym arkuszu mnóstwo procedur..... ponad 1550

2022-07-13 (19:27)

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

1386
wpis nr 1 426 673
[ CZCIONKA MONOSPACE ]

czyli lata ........experymentów w vba
uciekam .......definitywnie
2022-07-13 (19:34)

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

15220
wpis nr 1 426 674
[ CZCIONKA MONOSPACE ]

Jak dla mnie za dużo opcji do obserwacji. Jak psychologowie zauważyli zbyt duży wybór "towaru"
po przekroczeniu pewnej granicy przeszkadza w samym wyborze.
Nigdy nie brałem pod uwagę np. opcji 4na7 z 67 liczb, czy 34 liczb, czy jeszcze z każdej jaką
zapragnę obserwować.
Z eksperymentów z VBA i makrami zrezygnowałem po tym jak coś tam napisałem w domu,
a w robocie nie chciało działać.
Potem było jeszcze gorzej, bo program chodził na serwerze, a admin blokował wszystko co nie
było jego pomysłem.

--- wpis edytowano 2022-07-13 19:39 ---

2022-07-13 (19:37)

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

1386
wpis nr 1 426 676
[ CZCIONKA MONOSPACE ]

Jacek_K1961
Wiele jeszcze przed Tobą

ale życzę Ci, abyś dotarł do wyznaczonego celu .
2022-07-13 (19:43)

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

15220
wpis nr 1 426 677
[ CZCIONKA MONOSPACE ]

Te nowe wersje to już nie dla mnie. Ja buduję z pojedynczych cegieł, nowocześni stawiają całe ściany.
.. ale ja lubię mieć kontrolę każdego kroku, a nie wpisać komendę z dwoma kropkami. Przecież takie
komendy program i tak rozbija na pojedyncze kroki ...
Przyszłość? Ja już na nic nie liczę, chyba, że na spotkanie z żoną, która zmarła równo 5 miesięcy temu,
matulą z którą się "rozstaliśmy" też równe pół roku temu i ojcem zmarłym 5 miesięcy i 1 dzień temu.

--- wpis edytowano 2022-07-13 19:46 ---

| Dodaj wpis w tym temacie | Spis tematów | Wyniki lottoStrona: 1 2 ... 20 21 22 ... 37 38
Wyślij wiadomość do admina