Forum strony www.multipasko.pl [Regulamin]


Dodaj wpis w tym temacie
Spis tematów
Login:

Hasło:
Strona: 1 2 ... 8 9 10 ... 18 19
Wyślij wiadomość do admina

Przewiń wpisy ↓

C++ od niechcenia

2018-06-03 (22:32)

status MLRandom
Data rejestracji: 2016-01-16
Ilość postów: 553

14699
wpis nr 1 171 211
[ CZCIONKA MONOSPACE ]

Dopisałem (musiałem tylko przeformatować strzałkę, bo pokazywało -g& jako błąd a nie strzałkę), działa. Dzięki
2018-06-05 (13:43)

status MLRandom
Data rejestracji: 2016-01-16
Ilość postów: 553

14699
wpis nr 1 171 431
[ CZCIONKA MONOSPACE ]

Sindbad, a może w wolnej chwili, w ramach wprawek w C++, skrobniesz kod konwertera kodu CSN? Zamiana pięciu wylosowanych liczb na kod CSN i odwrotnie?

Tak w ramach intelektualnego wypełnienia pojawiającej się znienacka odrobinki wolnego czasu?
2018-06-05 (20:09)

status sindbad
Data rejestracji: 2008-10-13
Ilość postów: 20531

3794
wpis nr 1 171 494
[ CZCIONKA MONOSPACE ]

Przygotuj algorytm i skrobnie się kod.
2018-06-05 (21:27)

status MLRandom
Data rejestracji: 2016-01-16
Ilość postów: 553

14699
wpis nr 1 171 514
[ CZCIONKA MONOSPACE ]

Hmm... algorytm powiadasz

Mam arkusz z wszystkimi kombinacjami i właśnie zaczęło mnie wkurzać wyszukiwanie kodu poszczególnych kombinacji. A jako że parę osób na tym forum (np. Amadeus) tworzyło konwertery CSN to myślałem, że to powszechna wiedza wśród obecnych tu specjalistów. Nie mam nawet makra, więc algorytmu tym bardziej.

Sindbad, poza generatorem wielopętlowym (generator wszystkich kombinacji minilotto) nic innego do głowy mi nie przychodzi. Biorąc pod uwagę szybkość C++ być może w ten prosty sposób też można spokojnie sobie poradzić. Wtedy podana piątka liczb byłby ogranicznikami na poszczególnych pętlach, a licznik zwracałby liczbę wykonań, jako kod CSN. I odwrotnie - analogicznie (pętle działają do "skonsumowania" licznika, czyli kodu CSN, podając stan liczników na poszczególnych pętlach jako szukaną piątkę).



Jeśli to nie pomoże to może ktoś nam pomoże? Halo, kochani, pomożecie?

2018-06-07 (19:58)

status MLRandom
Data rejestracji: 2016-01-16
Ilość postów: 553

14699
wpis nr 1 171 810
[ CZCIONKA MONOSPACE ]

Fajna ściąga dot. kombinacji:

https://www.codeproject.com/Articles/4675/Combinations-in-C

2018-06-09 (00:36)

status Zeolit
Data rejestracji: 2015-02-23
Ilość postów: 1622

14328
wpis nr 1 172 003
[ CZCIONKA MONOSPACE ]

MLRandom



Masz może jakiegoś mail'a. Pytałeś o pomoc.

Sam nie wiem czy to co mam coś pomoże, ale co mi tam.



Daj znać.
2018-06-09 (02:36)

status Zeolit
Data rejestracji: 2015-02-23
Ilość postów: 1622

14328
wpis nr 1 172 005
[ CZCIONKA MONOSPACE ]

MLRandom



amigo@........

Czy to Twój aktualny mail.

Potwierdź



Pozdrawiam
2018-06-09 (18:23)

status MLRandom
Data rejestracji: 2016-01-16
Ilość postów: 553

14699
wpis nr 1 172 109
[ CZCIONKA MONOSPACE ]

Zeolit, działa Nie zaglądam tam codzienne, ale zaglądam. Widzę maile od Ciebie, zaraz rzucę na nie okiem.
2018-06-10 (14:04)

status sindbad
Data rejestracji: 2008-10-13
Ilość postów: 20531

3794
wpis nr 1 172 209
[ CZCIONKA MONOSPACE ]

"Hmm... algorytm powiadasz"



No!
2018-06-10 (15:35)

status MLRandom
Data rejestracji: 2016-01-16
Ilość postów: 553

14699
wpis nr 1 172 226
[ CZCIONKA MONOSPACE ]

Potrzebujemy 6 zmiennych - 5 to numery mini lotto a jedna to licznik działań.



1) Pobieramy 5 numerów lotto (posortowane od najmniejszej do największej), ustawiamy je jako 5 zmiennych (np. a1,a2,a3,a4,a5 lub a,b,c,d,e). Uruchamiamy generator kombinacji minilotto (kodów VBA tego jest pełno), a w nim 6 zmienną (nasz licznik). Generator składa się z 5 pętli, jedna w drugiej. Liczniki pętli to nasze obserwowane zmienne. Gdy wszystkie 5 liczników na pętlach jest równych naszym pięciu liczbom, stopujemy działanie pętli i odczytujemy licznik wykonań, czyli naszą 6 zmienną, służącą nam za licznik wygenerowanych kombinacji. Odczytujemy tą zmienną i to nasz kod CSN



2) Pobieramy numer CSN i uruchamiamy generator jak w pkt 1). Tu obserwujemy licznik wygenerowanych kombinacji. Gdy licznik zrówna się z naszym kodem CSN, odczytujemy stan zmiennych (liczników) na poszczególnych pięciu pętlach - to nasze liczby mini lotto.



Sindbad, to Ci wystarczy?

2018-06-10 (16:16)

status sindbad
Data rejestracji: 2008-10-13
Ilość postów: 20531

3794
wpis nr 1 172 239
[ CZCIONKA MONOSPACE ]

Wystarczy
2018-06-13 (00:42)

status sindbad
Data rejestracji: 2008-10-13
Ilość postów: 20531

3794
wpis nr 1 172 624
[ CZCIONKA MONOSPACE ]

Hej!



//---------------------------------------------------------------------------



#include <vcl.h>

#pragma hdrstop



#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{



}

//---------------------------------------------------------------------------

int Liczba[43]; // Tablica liczb



int KombinacjaToNumer(int L1, int L2, int L3, int L4, int L5)

{

memset(Liczba, 0, 43 * sizeof(int)); // Zerowanie tablicy



Liczba[L1]=1; // Pobranie liczb do tablicy

Liczba[L2]=1;

Liczba[L3]=1;

Liczba[L4]=1;

Liczba[L5]=1;



int nr = 0; // Numer CSN



for(int i=1;i<=38;i++)

for(int j=i+1;j<=39;j++)

for(int k=j+1;k<=40;k++)

for(int l=k+1;l<=41;l++)

for(int m=l+1;m<=42;m++) {

nr++;

if (Liczba[i]+Liczba[j]+Liczba[k]+Liczba[l]+Liczba[m]==5) return nr; // Sprawdzanie liczb

}

return 0;

}

//---------------------------------------------------------------------------



void NumerToKombinacja(int CSN)

{

memset(Liczba, 0, 43 * sizeof(int));



int nr = 0;



for(Liczba[1]=1;Liczba[1]<=38;Liczba[1]++)

for(Liczba[2]=Liczba[1]+1;Liczba[2]<=39;Liczba[2]++)

for(Liczba[3]=Liczba[2]+1;Liczba[3]<=40;Liczba[3]++)

for(Liczba[4]=Liczba[3]+1;Liczba[4]<=41;Liczba[4]++)

for(Liczba[5]=Liczba[4]+1;Liczba[5]<=42;Liczba[5]++) {

nr++;

if(nr==CSN) return; // Sprawdzanie numeru

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Form1->Memo1->Lines->Add(Format("CSN: %d", ARRAYOFCONST((KombinacjaToNumer(1,2,4,12,32)))));

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

NumerToKombinacja(999);

Form1->Memo1->Lines->Add(Format("Kombinacja: %.2d,%.2d,%.2d,%.2d,%.2d", ARRAYOFCONST((

Liczba[1],

Liczba[2],

Liczba[3],

Liczba[4],

Liczba[5]))));

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Form1->Position = poScreenCenter; // Na środku ekranu no!

Memo1->Align = alLeft;

Memo1->Clear();

Memo1->ScrollBars = ssVertical;

Button1->Width = 120;

Button1->Caption = "KombinacjaToNumer";

Button2->Width = 120;

Button2->Caption = "NumerToKombinacja";

}

//---------------------------------------------------------------------------

--- wpis edytowano 2018-06-13 00:45 ---

2018-06-13 (10:40)

status sindbad
Data rejestracji: 2008-10-13
Ilość postów: 20531

3794
wpis nr 1 172 661
[ CZCIONKA MONOSPACE ]

Witam



Wariant na piechotę (liczenie na paluszkach) mamy opanowany.

Czas pomyśleć nad czymś bardziej skróconym.

Jeśli są jakieś propozycje, to proszę śmiało pisać.
2018-06-14 (11:16)

status sindbad
Data rejestracji: 2008-10-13
Ilość postów: 20531

3794
wpis nr 1 172 828
[ CZCIONKA MONOSPACE ]

Hej!



Czyżby pomysłu.
2018-06-14 (11:43)

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

2047
wpis nr 1 172 830
[ CZCIONKA MONOSPACE ]

Sindbad, to może kod na " szczęśliwe siódemki" ? Bo domyślam się, że szukałeś je softem działającym z kodem Twojego pomysłu.
2018-06-14 (11:51)

status MLRandom
Data rejestracji: 2016-01-16
Ilość postów: 553

14699
wpis nr 1 172 831
[ CZCIONKA MONOSPACE ]

Sindbad, dzięki za kod.
2018-06-14 (11:56)

status MLRandom
Data rejestracji: 2016-01-16
Ilość postów: 553

14699
wpis nr 1 172 834
[ CZCIONKA MONOSPACE ]

Upss, cos mi nie chodzi:

[C++ Error] Unit1.cpp(61): E2316 '_fastcall TForm1::Button1Click(TObject *)' is not a member of 'TForm1'

[C++ Error] Unit1.cpp(66): E2316 '_fastcall TForm1::Button2Click(TObject *)' is not a member of 'TForm1'

[C++ Error] Unit1.cpp(77): E2316 '_fastcall TForm1::FormCreate(TObject *)' is not a member of 'TForm1'



Potem to przejrzę.
2018-06-14 (12:24)

status sindbad
Data rejestracji: 2008-10-13
Ilość postów: 20531

3794
wpis nr 1 172 838
[ CZCIONKA MONOSPACE ]

MLRandom, istotna jest tabela procedura i funkcja a reszta to opierzenie wizualne według gustu.



Kleszek, to wykonał program Multilotto 4.16

Jeśli będzie pomysł (algorytm), to pomyślimy, ale po co jak jest dobry program, który to wykona.



//---------------------------------------------------------------------------

int Liczba[43]; // Tablica liczb



int KombinacjaToNumer(int L1, int L2, int L3, int L4, int L5)

{

memset(Liczba, 0, 43 * sizeof(int)); // Zerowanie tablicy



Liczba[L1]=1; // Pobranie liczb do tablicy

Liczba[L2]=1;

Liczba[L3]=1;

Liczba[L4]=1;

Liczba[L5]=1;



int nr = 0; // Numer CSN



for(int i=1;i<=38;i++)

for(int j=i+1;j<=39;j++)

for(int k=j+1;k<=40;k++)

for(int l=k+1;l<=41;l++)

for(int m=l+1;m<=42;m++) {

nr++;

if (Liczba[i]+Liczba[j]+Liczba[k]+Liczba[l]+Liczba[m]==5) return nr; // Sprawdzanie liczb

}

return 0;

}

//---------------------------------------------------------------------------



void NumerToKombinacja(int CSN)

{

memset(Liczba, 0, 43 * sizeof(int));



int nr = 0;



for(Liczba[1]=1;Liczba[1]<=38;Liczba[1]++)

for(Liczba[2]=Liczba[1]+1;Liczba[2]<=39;Liczba[2]++)

for(Liczba[3]=Liczba[2]+1;Liczba[3]<=40;Liczba[3]++)

for(Liczba[4]=Liczba[3]+1;Liczba[4]<=41;Liczba[4]++)

for(Liczba[5]=Liczba[4]+1;Liczba[5]<=42;Liczba[5]++) {

nr++;

if(nr==CSN) return; // Sprawdzanie numeru

}

}

//---------------------------------------------------------------------------
2018-06-14 (20:49)

status MLRandom
Data rejestracji: 2016-01-16
Ilość postów: 553

14699
wpis nr 1 172 908
[ CZCIONKA MONOSPACE ]

Sindbad, szukasz wyzwań?

Właśnie czytam o własnościach Markowa i ... doznałem inspiracji

Do zabawy potrzebna nam macierz, niech na początek będzie to macierz ilości liczb parzystych w kombinacji 5 liczb minilotto.

Macierz będzie wyglądała jakoś tak:



___0P__1P__2P__3P__4P__5P

0P...1.....3.....3.....5....4....1

1P...2.....1.....3.....2....1....1

2P...5.....4.....3.....3....2....2

3P...9.....7.....5.....4....2....3

4P...4.....5.....6.....8....1....1

5P...1.....7.....9.....7....1....1



Będzie nas informować o tym, jaki stan występuje po jakim stanie, tj. np. jak często 3 parzyste występują po 2 parzystych lub po 5ciu parzystych.



Na początek wykorzystałbym Twój generator kombinacji, ustawił mu np. milion kombinacji i pokazał wynik końcowy w postaci takiej macierzy. I tak można się będzie bawić wiele razy



Dałoby radę coś takiego zrobić?

--- wpis edytowano 2018-06-14 20:53 ---

2018-06-15 (09:55)

status sindbad
Data rejestracji: 2008-10-13
Ilość postów: 20531

3794
wpis nr 1 172 986
[ CZCIONKA MONOSPACE ]

Cześć.



Można to zrobić, ale można też na podstawie rozkładu nieparzyste/parzyste poznać wynik.



0 = 20349 = 2,39%

1 = 125685 = 14,77%

2 = 279300 = 32,83%

3 = 279300 = 32,83%

4 = 125685 = 14,77%

5 = 20349 = 2,39%

--- wpis edytowano 2018-06-15 09:55 ---

| Dodaj wpis w tym temacie | Spis tematów | Wyniki lottoStrona: 1 2 ... 8 9 10 ... 18 19
Wyślij wiadomość do admina