Forum strony www.multipasko.pl [Regulamin]


Dodaj wpis w tym temacie
Spis tematów
Login:

Hasło:
Strona: 1 2 ... 18 19
Wyślij prywatną wiadomość do admina
Przewiń wpisy ↓

C++ od niechcenia


2018-05-01 (09:52)

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

3794
wpis nr 1 165 464

2018-05-01 (16:37)

status henryO
Data rejestracji: 2016-04-01
Ilość postów: 52

14808
wpis nr 1 165 554

Pakiety Visual C++ Redistributable instalują składniki czasu wykonywania, które są wymagane do uruchomienia aplikacji w języku C++ skompilowanych przy użyciu programu Visual Studio 2015.

--- wpis edytowano 2018-05-01 16:38 ---

2018-05-01 (19:28)

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

3794
wpis nr 1 165 566

Hej!



Ja zainstalowałem sobie Code::Blocks



Kurs: https://youtu.be/ErOzmh3BiXU





Mam zamiar wylosować wszystkie szóstki w Lotto.



Użyję generatora MT.



Test generatora:



#include <iostream>

#include<conio.h>

#include <time.h>



// Generator Mersenne Twister

// Data : 16.04.2008

// (C)2012 mgr Jerzy Wałaszek

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



using namespace std;



typedef unsigned long long ulong;



unsigned int MT[624];

int mti = 0;



// Inicjuje MT[]

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

void InicjujMT(unsigned int x0)

{

ulong x;



MT[0] = x0;

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

{

x = MT[i-1];

x = (23023 * x) & 0xffffffffull;

x = ( 3 * x) & 0xffffffffull;

MT[i] = x;

}

}



// Inicjuje MT wartoœciami losowymi

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

void UprzypadkowijMT()

{

InicjujMT((unsigned int)time(NULL));

}



// Generator Mersenne Twister

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

unsigned int MersenneTwister()

{

const unsigned int MA[] = {0,0x9908b0df};

long int y;

int i1,i397;



i1 = mti + 1; if( i1 > 623) i1 = 0;

i397 = mti + 397; if(i397 > 623) i397 -= 624;

y = (MT[mti] & 0x80000000) | (MT[i1] & 0x7fffffff);

MT[mti] = MT[i397] ^ (y >> 1) ^ MA[y & 1];

y = MT[mti];

y ^= y >> 11;

y ^= (y << 7) & 0x9d2c5680;

y ^= (y << 15) & 0xefc60000;

y ^= y >> 18;

mti = i1;

return y;

}

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





int main()

{

int a,b,i,n;



UprzypadkowijMT();



cout << "Generator Mersenne Twister (MT)" << endl << endl;

cout << "Od liczby: ";

cin >> a;

cout << "Do liczby: ";

cin >> b;

cout << "Losowania: ";

cin >> n;

cout << endl << endl;



for(i = 1; i <= n; i++) cout << (a + (MersenneTwister() % (b - a + 1))) << " ";

cout << endl << endl;



getch();



return 0;

}

--- wpis edytowano 2018-05-01 19:38 ---

2018-05-01 (20:49)

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

2047
wpis nr 1 165 587

Sindbad, lubię takie wyzwania Obejrzałem filmik z youtube, zainstalowałem CodeBlocks i uruchomiłem kod, który wstawiłeś w poście. Pojawiło się nowe okno, w którym program zadaje pytania:

od liczby

do liczby

losowania

Rozumiem, że tym kodem mogę sobie wygenerować losowy zestaw np. 6 liczb z 49. Ale Ty napisałeś cyt. "Mam zamiar wylosować wszystkie szóstki w Lotto." Więc proszę o instrukcję co dalej. W tej dziedzinie jestem kompletnym laikiem, więc jeśli będziesz chciał pokazać co można zrobić mając do dyspozycji odpowiedni kod programu, to trzeba będzie pokazać wszystko jak dla dziecka w przedszkolu Pozdrawiam!



2018-05-01 (20:50)

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

3794
wpis nr 1 165 588

henryO, jak okienka to wybrałbym starego Borlanda C++ Builder 6.
2018-05-01 (21:01)

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

3794
wpis nr 1 165 592

kleszek, ja uczyłem się c++ w roku 94' he! Od tego czasu prawie wszystko zapomniałem.

Może zacznę od deklaracji tablicy wszystkich szóstek.

2018-05-01 (22:07)

status Ciocia__Micowhyaja
Data rejestracji: 2016-12-17
Ilość postów: 395

15084
wpis nr 1 165 612

a ja w 1994 roku słuchałem hitów









New Kids on the Block,







Mariah Carey

Without You / Never Forget You















Kelly Family: Hits 1994: Why Why Why







pozdrowienia
2018-05-01 (22:32)

status Robin Hood
Data rejestracji: 2009-07-12
Ilość postów: 7786

4895
wpis nr 1 165 617

A ja w 1994 roku zażywałem witaminę

C +cynk



Rozczarował mnie natomiast wpis kleszka :



>>Więc proszę o instrukcję co dalej. W tej dziedzinie jestem kompletnym laikiem, więc jeśli będziesz chciał pokazać co można zrobić <<



Pamiętam doskonale jak dawał na Forum nauki że nie ma liczb w Lotto

tylko są losowane kody i wszystkich kodów w DL jest dokładnie 13 983 816.

No to po co mu teraz wszystkie szóstki ,przecież ma je wszystkie zakodowane.

No ,chyba że zapomniał jak je ma rozkodować na liczby
2018-05-01 (22:53)

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

3794
wpis nr 1 165 620

Jak wlezę na strych po stary dysk, to będę wiedział jak z numeru zrobić zakład i z zakładu numer hej!



Robin, masz rację ja to nie robię dla siebie, ale ciekawi mnie czy znajdzie się generator, który zejdzie poniżej 200 milionów losowań

dla pokrycia wszystkich 6/49.





#include <iostream>

#include<conio.h>

#include <time.h>



// Generator Mersenne Twister

// Data : 16.04.2008

// (C)2012 mgr Jerzy Wa³aszek

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



using namespace std;







typedef unsigned long long ulong;



unsigned int MT[624];

int mti = 0;



// Inicjuje MT[]

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

void InicjujMT(unsigned int x0)

{

ulong x;



MT[0] = x0;

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

{

x = MT[i-1];

x = (23023 * x) & 0xffffffffull;

x = ( 3 * x) & 0xffffffffull;

MT[i] = x;

}

}



// Inicjuje MT wartoœciami losowymi

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

void UprzypadkowijMT()

{

InicjujMT((unsigned int)time(NULL));

}



// Generator Mersenne Twister

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

unsigned int MersenneTwister()

{

const unsigned int MA[] = {0,0x9908b0df};

long int y;

int i1,i397;



i1 = mti + 1; if( i1 > 623) i1 = 0;

i397 = mti + 397; if(i397 > 623) i397 -= 624;

y = (MT[mti] & 0x80000000) | (MT[i1] & 0x7fffffff);

MT[mti] = MT[i397] ^ (y >> 1) ^ MA[y & 1];

y = MT[mti];

y ^= y >> 11;

y ^= (y << 7) & 0x9d2c5680;

y ^= (y << 15) & 0xefc60000;

y ^= y >> 18;

mti = i1;

return y;

}

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

bool tab[13983817];// Tablica szóstek



int main()

{



int a,v,x;

v = 0;

x = 0;

UprzypadkowijMT();



do

{

x++;

a = (MersenneTwister() % (13983816)) +1;

if(tab[a]==0) {v++; tab[a]=1;}

}



while (v < 13983816);



cout << "Losowano " << x << " razy" << endl << endl;



cout << " Koniec ";



getch();



return 0;

}

--- wpis edytowano 2018-05-01 23:00 ---

2018-05-01 (23:05)

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

1386
wpis nr 1 165 621

Losowano 227222599 razy



trudno będzie tego ...doczekać
2018-05-02 (12:28)

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

2047
wpis nr 1 165 709

U mnie wyszło:

losowano : 220749111 razy. Do 200 milionów losowań troche jeszcze brakuje Obliczenia trwały około 10 sekund. Jak dla mnie, to szok, że takie symulacje, komputer robi w tak krótkim czasie.

Robin Hood napisał cyt. " Rozczarował mnie natomiast wpis kleszka " ; " No to po co mu teraz wszystkie szóstki ,przecież ma je wszystkie zakodowane."

Do Twojej wiadomości. Te szóstki nie są mi absolutnie do niczego potrzebne. Sindbad pokazał co można, mając umiejętności programistyczne i odpowiednie narzędzia wyliczyć przy pomocy C++. Jeżeli sindbad będzie chciał się dzielić na forum swoimi pracami w tej dziedzinie, każdy będzie mógł "samodzielnie" napisać program np. generator zestawów lotto taki jak w poście 'wpis nr 1 165 566' Tylko tyle, albo aż tyle.

Wracając do tematu. W tym wpisie 'wpis nr 1 165 566', pokazałeś jak wygenerować 1 zestaw lotto. Co należy dodać do kodu aby wygenerować w jednym uruchomieniu programu np. 10 takich zestawów i przy okazji zapisać je do pliku .txt ?

2018-05-02 (13:00)

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

1386
wpis nr 1 165 715

kleszek



Język C++. Szkoła programowania. Wydanie VI



Tytuł oryginału: C++ Primer Plus (6th Edition) (Developer's Library)



Autorzy: Stephen Prata



na allegro

Język C++ Szkoła programowania ~ WYPRZEDAŻ ~ WYS 0

>> można juz kupić za 62,50 zł

-------------------------------------------

ja zapłaciłem 99-pln kilka miesiecy temu
2018-05-02 (13:44)

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

2047
wpis nr 1 165 722

777ch, dzięki ale wiem to na pewno, że nie nadaję się na programistę. Oczywiście, wiem, że z takich książek można nauczyć się podstaw, ale też wiem, że aby tworzyć coś więcej niż proste programy typu "Hello World!" trzeba mieć coś czego ja nie mam. Trzeba mieć TALENT.
2018-05-02 (13:54)

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

1386
wpis nr 1 165 724

kleszek

nazwał bym to > "wyobraźnia"



Ale ma sporo synonimów :

przemyślność, przytomność, zręczność, zdolność, talent, rozwaga, lotność, przenikliwość, spryt, rezolutność, kreatywność, imaginacja, logika, polot, pomyślunek, mądrość, pomysłowość, trzeźwość, bystrość, fantazja, błyskotliwość, zdrowy rozsądek, inwencja, zmyślność, pojętność, inteligencja, esprit, roztropność, rzeczowość, rozumność itp..



-------------------------------------------------

ale ,najpierw potrzebna jest "wiedza" .......

co oznacza >"praca od podstaw".....

a potem może przydać się ta ....."wyobraźnia"



--- wpis edytowano 2018-05-02 13:57 ---

2018-05-02 (14:04)

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

2047
wpis nr 1 165 726

>>> ale ,najpierw potrzebna jest "wiedza" .......

co oznacza >"praca od podstaw".....

a potem może przydać się ta ....."wyobraźnia" <<<



To może inaczej. Nie wiem czy grasz na jakimś instrumencie muzycznym. Jeżeli nie, to zapewniam Cię, że po całodziennym "treningu" zagrasz bez błędu na gitarze np. "wlazł kotek na płotek" Ale to wcale nie oznacza, że jeżeli nauczysz się to grać, to napiszesz hit, którego będą chciały słuchać miliony Choć w jakimś stopniu umiejętność zagrania gamy ( czyli popularne do-re-mi-fa sol itd.) będziesz miał opanowaną



2018-05-02 (14:15)

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

1386
wpis nr 1 165 731

Kleszek ,jak kiedyś kupiłeś tablice chwytów Tadeusza Mazura,

to wiesz ile tego jest......

zawsze wirtuozeria ,zależy od "umiejętności" .czyli od ilości godzin_ćwiczeń.. poświęconych

tematowi.....



10000 godzin i będziesz grał w C++

no ale rzeczywiście nie każdy wirtuoz jest dobrym kompozytorem



pozdrawiam
2018-05-02 (14:18)

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

3794
wpis nr 1 165 732

Spoko - damy rade.



kleszek,



zauważ, że z przedziału jest generowana jedna liczba.

To nie jest zakład jedynie ciąg wylosowanych liczb.



Teraz biorę się za prace fizyczne w domu a wieczorem zrobimy losowanie zakładów z zapisaniem do pliku.



No! I jeszcze mecz he!
2018-05-02 (20:57)

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

3794
wpis nr 1 165 802

kleszek, tak na szybko (bez komentarzy), bo lecę na mecz.





#include <iostream>

#include<conio.h>

#include <time.h>

#include <fstream>

// Generator Mersenne Twister

// Data : 16.04.2008

// (C)2012 mgr Jerzy Wa³aszek

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



using namespace std;



typedef unsigned long long ulong;



unsigned int MT[624];

int mti = 0;



// Inicjuje MT[]

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

void InicjujMT(unsigned int x0)

{

ulong x;



MT[0] = x0;

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

{

x = MT[i-1];

x = (23023 * x) & 0xffffffffull;

x = ( 3 * x) & 0xffffffffull;

MT[i] = x;

}

}



// Inicjuje MT wartoœciami losowymi

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

void UprzypadkowijMT()

{

InicjujMT((unsigned int)time(NULL));

}



// Generator Mersenne Twister

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

unsigned int MersenneTwister()

{

const unsigned int MA[] = {0,0x9908b0df};

long int y;

int i1,i397;



i1 = mti + 1; if( i1 > 623) i1 = 0;

i397 = mti + 397; if(i397 > 623) i397 -= 624;

y = (MT[mti] & 0x80000000) | (MT[i1] & 0x7fffffff);

MT[mti] = MT[i397] ^ (y >> 1) ^ MA[y & 1];

y = MT[mti];

y ^= y >> 11;

y ^= (y << 7) & 0x9d2c5680;

y ^= (y << 15) & 0xefc60000;

y ^= y >> 18;

mti = i1;

return y;

}

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



int main()

{

int li[80];

int a,b,c,i,j,n,x;

UprzypadkowijMT();

cout << "Generator Mersenne Twister (MT)" << endl << endl;

cout << "Od liczby: ";

cin >> a;

cout << "Do liczby: ";

cin >> b;

cout << "Liczb: ";

cin >> c;

cout << "Losowania: ";

cin >> n;

cout << endl << endl;



fstream plik( "plik.txt", ios::out );

if( plik.good() )

{

for(i = 1; i<= n; i++)

{

for(j=1; j<=80; j++) li[j] = 0;



for(j=1; j<=c; j++)

{

do {

x = (a + (MersenneTwister() % (b - a + 1)));

}

while (li[x] > 0);

li[x]=1;

}

for(j=1; j<=80; j++)

if(li[j]==1) {plik << j << " ";

cout << j <<" ";

}

plik<< endl;cout << endl;

}

}

getch();

return 0;

}
2018-05-02 (21:15)

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

3794
wpis nr 1 165 807

Popraw int li[80];

Na int li[81];





Jeśli będziesz dużo zakładów losować do pliku to pomiń wyświetlanie na ekranie.



// cout << j <<" ";

plik<< endl; // cout << endl;

--- wpis edytowano 2018-05-02 21:27 ---

2018-05-02 (21:50)

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

2047
wpis nr 1 165 819

Dziękuję sindbad. Wszystko działa perfekcyjnie ( tak jak Liverpool w dzisiejszym meczu )

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