Forum strony www.multipasko.pl [Regulamin]


Dodaj wpis w tym temacie
Spis tematów
Login:

Hasło:
Strona: 1 2 ... 323 324 325 ... 554 555
Wyślij wiadomość do admina

Przewiń wpisy ↓

moje ... oprogramowanie

2020-04-28 (18:02)

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

2047
wpis nr 1 288 889
[ CZCIONKA MONOSPACE ]

Dobrym testem będzie porównanie makra fair_play'a z programem Wheeling Systems Validator. Nie mam co prawda pełnej wersji programu, ale czas działania programu mogę chyba sprawdzić. Validator ma jakieś ograniczenia w ilosci [V] i [K] ale jakies testy porównawcze mogę zrobić. Jak znajdę chwilę czasu, to zrobię takie testy.

--- wpis edytowano 2020-04-28 18:02 ---

2020-04-28 (18:12)

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

1386
wpis nr 1 288 891
[ CZCIONKA MONOSPACE ]

ale..........

w procesie budowy czyli poprawiania covera
bardzo rzadko wykonuje się sprawdzenie gwarancji....... do końca
bo odniesieniem jest [ hit brakujących ]
i tylko przy lepszym 'rozdaniu" jest gwarancja wykonana --> do końca

i wtedy hit brakujących jest zmieniony na --> lepszy czyli mniejszy brak

po prostu proces sprawdzania gwarancji jest przerwany
i następuje próbkowanie innej linii dla innej liczby czy par czy trójek

a kiedyś na pewno spróbuje te stare obliczenia --> ulepszyć
............jeśli będę miał na to ochotę.
2020-04-28 (18:28)

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

14865
wpis nr 1 288 894
[ CZCIONKA MONOSPACE ]

777ch>

zdjęcie

Podejrzewam, że kleszek zrobi to w sekundę
2020-04-28 (19:01)

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

2047
wpis nr 1 288 896
[ CZCIONKA MONOSPACE ]

00,9218750sek.
2020-04-28 (19:31)

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

2047
wpis nr 1 288 902
[ CZCIONKA MONOSPACE ]

cyt."Jak znajdę chwilę czasu, to zrobię takie testy."

Validator jest oczywiście szybszy. Korzysta z wszystkich rdzeni procesora, a excel tylko z jednego. Dla systemu C(60,15,6,6)= 38496 gwarancję liczył niecałe 7 sekund. Makro fair_play'a potrzebowało do tego 143 sekundy co i tak jest świetnym rezultatem
2020-04-28 (19:34)

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

1386
wpis nr 1 288 903
[ CZCIONKA MONOSPACE ]

mój czas : 53,9155395499746 ms

w sekundach to --> 0.053s

-->a więc 17 razy szybciej niż kleszka czas

--- wpis edytowano 2020-04-28 19:41 ---

2020-04-28 (19:38)

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

1386
wpis nr 1 288 904
[ CZCIONKA MONOSPACE ]

taki czas pozwala na podmianę
wszystkich -->30 liczb ze sprawdzeniem gwarancji
w czasie sumarycznym 1.6 sekundy


excel się nie nadaje tam
gdzie potrzebna jest prawdziwa szybkość

--- wpis edytowano 2020-04-28 19:40 ---

2020-04-28 (19:47)

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

2047
wpis nr 1 288 907
[ CZCIONKA MONOSPACE ]

cyt. "excel się nie nadaje tam
gdzie potrzebna jest prawdziwa szybkość"
Makro fair_play'a to pomysł na obliczenia w excelu. Nie znam się na tym, ale domyślam się, że da się ten pomysł ( algorytm ) zamienić na aplikację .exe Sam nie tak dawno pisałeś cyt."."I wespół w zespół, wespół w zespół" itp. itd
2020-04-28 (19:49)

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

14865
wpis nr 1 288 908
[ CZCIONKA MONOSPACE ]

777ch>

Te gwarancje liczysz w Pascalu ?
2020-04-28 (19:55)

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

1386
wpis nr 1 288 911
[ CZCIONKA MONOSPACE ]

oczywiście ,tylko w paskalu

w jedną sekundę z małym haczykiem
to przeliczam jak poniżej :

357 ≤ C(99,25,4) ≤ 566

https://ljcr.dmgordon.org/cover/show_cover.php?v=99&k=25&t=4


-- Gwar.4 if [4] --
.
Brak real {0} ...{- blef =0}
Sprawdzono zbiór = 1581580 kombinacji
Gwar..[4]= 100 %
x1: [0] x=8: [0] x=14: [0]
x2: [0] x=9: [0] x=15: [0]
x3: [0] x=10: [0] x>=16: [1581580]
x4: [0] x=11: [0]
x5: [0] x=12: [0]
x6: [0] x=13: [0]
x=7: [0] Nr:0 ..1->2.. 19:50:16
Pula liczb: 0 hit min: 80
Time calculated : 1449,99079315524 ms


czas sprawdzenia gwarancji
w sekundach--- 1.449s

sprawdź kleszek Validatorem
2020-04-28 (19:59)

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

2047
wpis nr 1 288 913
[ CZCIONKA MONOSPACE ]

Nie da się. Validator ma [K] tylko do 15 liczb
2020-04-28 (20:00)

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

1386
wpis nr 1 288 914
[ CZCIONKA MONOSPACE ]

kleszek
"prawie"......wszystko się da ,ale na wszystko potrzeba
czasu+chęci

ja mam inne pomysły ,które na razie zawodzą
ale jeszcze nie podjąłem próby
wywołania np 20 =tu robotników
dla przeliczeń jednej gwarancji
przecież inne programiki w on create
zgarną dane bieżące i policzą swoje ..części
a każdy może zrobić zapis dla
programu -->"matki" czy "ojca"

czasu+chęci

--- wpis edytowano 2020-04-28 20:01 ---

2020-04-28 (20:48)

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

1386
wpis nr 1 288 929
[ CZCIONKA MONOSPACE ]

ale walka.......
gratulacje wszystkim,
a ja poległem.....

2020-04-28 (20:52)

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

1386
wpis nr 1 288 933
[ CZCIONKA MONOSPACE ]

ciągle na 14-tu stoję ....
2020-04-28 (20:58)

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

14865
wpis nr 1 288 936
[ CZCIONKA MONOSPACE ]

777ch>

Sprawdzasz w swojej procedurze wszystkie możliwe szóstki ?
2020-04-28 (21:00)

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

1386
wpis nr 1 288 937
[ CZCIONKA MONOSPACE ]

w tej starej procedurze -->tak


procedure TForm1.gwar6nospeed6(Sender: TObject);
var
i,k, v, traf,s, r, cof, g, os, ST, l1, l2, l3, l4, l5,L9,l10,
l6,l7,l8,lmam,BRAK5,BRAK6,mandat,nex : Integer;
Freq, TimeStart, TimeEnd: Int64;
btr2,btr3,btr4,btr5,btr6,btr7,btr8,btr10,
dubel,hitdubel,wyp,maxdub,hitproc,hicior,MAXTR :integer;
paskuda,tabest,tahitowa,reply4,Nazwa:string;
gw106,gw105,gw104,gw103,gw102,gw109,gw108,gw107,gw1010: Real;
brak2,brak3,brak4,brak7,brak8,brak9,brak10,brak:integer;
i2, u,j,k2,l,fx,suma,pp,ih,tr,t,rw:integer;
pok4,brakreal,tma4,mask4:longint;
gwreal:real;

wsptot, przel,zakład:string;
label
dalej;
label
brekuj;
begin

Spis := TStringList.Create; // Przed użyciem tworzymy TStringList


brakreal:=0;
brak4:=0;
MAXTR:=0;
brak4:=0;
ST := 1;
g := spinedit1.value;
os := spinedit3.value; // konwersja
ilegen:=spinedit2.Value;
if os<6 then form1.memo8.Lines.Add('vmax<6....');
if os<6 then exit;


pok4:= Combination(os,6);

QueryPerformanceCounter(TimeStart);


for l1 := 1 to os - 5 do begin
p[1] := l1;
for l2 := l1 + 1 to os - 4 do begin
p[2] := l2;
for l3 := l2 + 1 to os - 3 do begin
p[3] := l3;
for l4 := l3 + 1 to os-2 do begin
p[4] := l4;
for l5 := l4 + 1 to os - 1 do begin
p[5] := l5;
for l6 := l5 + 1 to os do begin
p[6] := l6;




MAXTR:=0;
i:=1;
repeat


// if tabrand[i, 1]> p[1] then maxtr:=ilegen;
// if tabrand[i, 2]> p[2] then maxtr:=ilegen;
//if tabrand[i, 3]> p[3] then maxtr:=ilegen;
// if tabrand[i, 4]> p[4] then maxtr:=ilegen;
//if tabrand[i, 5]> p[5] then maxtr:=ilegen;
//if tabrand[i, 6]> p[6] then maxtr:=ilegen;

if ((tabbest[i, p[1]]<>0)and (tabbest[i, p[2]]<>0)
and (tabbest[i, p[3]]<>0) and (tabbest[i, p[4]]<>0)
and (tabbest[i, p[5]]<>0) and (tabbest[i, p[6]]<>0))and(maxtr<ilegen ) then

break
else
inc(maxtr);





inc(i);

until( maxtr>=ilegen) ;
if maxtr=ilegen then inc(brak4);
if (bestbrak<brak4-1)and(hallo=2) then goto brekuj;

end;

end;
end;
end;

end;
end;




brekuj:

QueryPerformanceCounter(TimeEnd);
brakreal:=brak4;
gwreal := (pok4-brak4)/pok4*100 ;
gw104:= (pok4-brak4)/pok4*100 ;
gwnow:=gw104;
brakact:=brak4;
edit8.text:=INTTOSTR(brakreal);

Application.ProcessMessages;



przel:=floattostr(gwnow);
wsptot:=copy(przel,0,11);


//jeżeli mniejsza po podmianie to przywracamy
if (gwnow < hitgw) and(s1>0) then tabbest[strand][lw1]:=0;
if (gwnow < hitgw) and(s1>0) then tabbest[strand][s1]:=s1;
//if (gwnow < hitgw) and(s1=0)and(lw1>0) then tabbest[strand][lw1]:=lw1;

if (gwnow < hitgw) and(s2>0) then tabbest[strand][lw2]:=0;
if (gwnow < hitgw) and(s2>0) then tabbest[strand][s2]:=s2;
//if (gwnow < hitgw) and(s2=0)and(lw2>0) then tabbest[strand][lw2]:=lw2;

if (gwnow < hitgw) and(s3>0) then tabbest[strand][lw3]:=0;
if (gwnow < hitgw) and(s3>0) then tabbest[strand][s3]:=s3;
// if (gwnow < hitgw) and(s3=0) then tabbest[strand][lw3]:=lw3;

if (gwnow < hitgw) and(s4>0) then tabbest[strand][lw4]:=0;
if (gwnow < hitgw) and(s4>0) then tabbest[strand][s4]:=s4;
//if (gwnow < hitgw) and(s4=0) then tabbest[strand][lw4]:=lw4;

if (gwnow < hitgw) and(s5>0) then tabbest[strand][lw5]:=0;
if (gwnow < hitgw) and(s5>0) then tabbest[strand][s5]:=s5;
//if (gwnow < hitgw) and(s5=0) then tabbest[strand][lw5]:=lw5;


if (gwnow < hitgw) and(s6>0) then tabbest[strand][lw6]:=0;
if (gwnow < hitgw) and(s6>0) then tabbest[strand][s6]:=s6;
// if (gwnow < hitgw) and(s6=0) then tabbest[strand][lw6]:=lw6;

if (gwnow < hitgw) and(s7>0) then tabbest[strand][lw7]:=0;
if (gwnow < hitgw) and(s7>0) then tabbest[strand][s7]:=s7;
//if (gwnow < hitgw) and(s7=0) then tabbest[strand][lw7]:=lw7;

Application.ProcessMessages;
if gwnow <= hitgw then begin
fx:=0;
for t:=1 to os do begin

if tabbest[strand][t]>0 then begin
inc(fx);
tabrand[strand][fx]:= tabbest[strand][t];
end;
end;

end;
if gwnow <hitgw then goto dalej;




memo6.Lines[0]:=('-- Gwar.6 if [6] --');

//memo6.Lines[1]:=('GwMask.[4]= '+floattostr(gw104)+' %');

memo6.Lines[2]:=('Brak real {'+INTTOSTR(brakreal)+'} ...{- blef =')+INTTOSTR(brakreal-blef)+'}';
memo6.Lines[3]:=('Sprawdzono zbiór = '+inttostr(pok4)+' kombinacji');
memo6.Lines[4]:=('Gwar..[6]= '+floattostr(gwreal)+' %');
memo6.Lines[12]:=('Time calculated : ' +
FloatToStr(((TimeEnd - TimeStart) / 1000)) + ' ms');
mandat:= strand;
if (spinedit33.value<>mandat)and(spinedit34.value<>mandat)and(spinedit35.value<>mandat)and(spinedit42.value<>mandat)
and(spinedit36.value<>mandat)and(spinedit37.value<>mandat)and(spinedit40.value<>mandat)and(spinedit41.value<>mandat)
and(spinedit44.value<>mandat)and(spinedit45.value<>mandat)and(spinedit46.value<>mandat)then begin
nex := random(11)+1;

if (nex=0)or(nex>11) then nex:=11;

case nex of
1: spinedit33.value:=mandat ;
2: spinedit34.value:=mandat ;
3: spinedit35.value:=mandat ;
4: spinedit36.value:=mandat ;
5: spinedit37.value:=mandat ;
6: spinedit40.value:=mandat ;
7: spinedit41.value:=mandat ;
8: spinedit42.value:=mandat ;
9: spinedit44.value:=mandat ;
10: spinedit45.value:=mandat ;
11: spinedit46.value:=mandat ;
end;
Application.ProcessMessages;
end;


if gwnow >= hitgw then gw:=gwnow;
// // if gwnow >= totalhit then form1.memo8.Text:=memo6.Text;
if gwnow >= hitgw then begin
gw:=gwnow;
bestbrak:=brak4-blef;

//StaticText7.Caption:=' best Gw.['+inttostr(maxdop)+']= '+floattostr(gw)+' %';
for ih := 1 to ilegen do begin
zakład:='';
fx:=0;
for tr := 1 to os do begin

if (tabbest[ih][tr]>0)and(length(inttostr(tabbest[ih][tr]))=2) then zakład:=zakład+inttostr(tabbest[ih][tr])+ ' ';
if (tabbest[ih][tr]>0)and(length(inttostr(tabbest[ih][tr]))=1) then zakład:=zakład+'0'+inttostr(tabbest[ih][tr])+ ' ';

tabzak [ih][tr]:=tabbest[ih][tr];
if gwnow > totalhit then tabhit [ih][tr]:=tabbest[ih][tr];
if tabbest[ih][tr]>0 then begin
inc(fx);
tabrand[ih][fx]:= tabbest[ih][tr];
end;
end;
if length(zakład)>2 then Spis.Add(zakład);

end;

if totalhit < gwnow then Spis.SaveToFile('Plik.TXT');
// Spis.Free;
if totalhit < gwnow then memo4.Lines.LoadFromFile('Plik.TXT');

if hitgw <= gw then begin

if totalhit < gwnow then memo1.Lines.Clear;
if totalhit < gwnow then memo1.Text:=memo4.Text;
hitgw:=gw;
edit3.Text:= wsptot;
edit5.Text:='[-'+inttostr(bestbrak) +']';
end;

Application.ProcessMessages;
end;
dalej:
Spis.Free;
end;

2020-04-28 (21:04)

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

1386
wpis nr 1 288 941
[ CZCIONKA MONOSPACE ]

trzeba by tą procedurę .........mocno zoptymalizować

ale zaraz ...."wyspa dębów"
albo co innego

anie mam dobrego pomysłu dla
obróbki danych bez tablic......
albo ciekawego pomysłu dla .....alokacji pamięci
2020-04-28 (21:06)

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

14865
wpis nr 1 288 942
[ CZCIONKA MONOSPACE ]

możesz z grubsza opisać słowami sam sposób sprawdzania ?
2020-04-28 (21:10)

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

1386
wpis nr 1 288 944
[ CZCIONKA MONOSPACE ]

for l1 := 1 to os - 5 do begin
p[1] := l1;
for l2 := l1 + 1 to os - 4 do begin
p[2] := l2;
for l3 := l2 + 1 to os - 3 do begin
p[3] := l3;
for l4 := l3 + 1 to os-2 do begin
p[4] := l4;
for l5 := l4 + 1 to os - 1 do begin
p[5] := l5;
for l6 := l5 + 1 to os do begin
p[6] := l6;




MAXTR:=0;
i:=1;
repeat


// if tabrand[i, 1]> p[1] then maxtr:=ilegen;
// if tabrand[i, 2]> p[2] then maxtr:=ilegen;
//if tabrand[i, 3]> p[3] then maxtr:=ilegen;
// if tabrand[i, 4]> p[4] then maxtr:=ilegen;
//if tabrand[i, 5]> p[5] then maxtr:=ilegen;
//if tabrand[i, 6]> p[6] then maxtr:=ilegen;

if ((tabbest[i, p[1]]<>0)and (tabbest[i, p[2]]<>0)
and (tabbest[i, p[3]]<>0) and (tabbest[i, p[4]]<>0)
and (tabbest[i, p[5]]<>0) and (tabbest[i, p[6]]<>0))and(maxtr<ilegen ) then

break
else
inc(maxtr);





inc(i);

until( maxtr>=ilegen) ;
if maxtr=ilegen then inc(brak4);
if (bestbrak<brak4-1)and(hallo=2) then goto brekuj;

end;

to zasadnicze linie

lecimy szóstki od pierwszej do ostatniej
os to zmienna dla v=np.= 80

ilegen to liczb linii w coverze

za niedługo muszę kończyć ...............

tabbest to tablica 0 albo 1-jedynkowa
tabrand to tablica kolejnych liczb w coverze
2020-04-28 (21:12)

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

1386
wpis nr 1 288 946
[ CZCIONKA MONOSPACE ]

if ((tabbest[i, p[1]]<>0)and (tabbest[i, p[2]]<>0)
and (tabbest[i, p[3]]<>0) and (tabbest[i, p[4]]<>0)
and (tabbest[i, p[5]]<>0) and (tabbest[i, p[6]]<>0))and(maxtr<ilegen ) then

break


jeżeli napotkam sytuację
gdy sześć tablic <> 0 to przerywam

ale to za mało ......szybkie jest
| Dodaj wpis w tym temacie | Spis tematów | Wyniki lottoStrona: 1 2 ... 323 324 325 ... 554 555
Wyślij wiadomość do admina