Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 12 odgovora
  • 12.126 pregleda

Najnovija ↓

loto program 21.08.2007. u 03:40 · pre 233 meseca
izmenjeno 2 puta, poslednji put lordy007 21.08.2007. u 04:19
  1. lordy00721.08.2007. u 04:19zapis iz teksta poruke
  2. lordy00721.08.2007. u 03:54zapis iz teksta poruke
#1
zdravo ja sam novi ovde i imam mnogo malo poznavanje od programiranje. Pa hocu da napravim neki program koju ce generise sve mozne kombinace od set [1..37] od 7 elementi (normalno za loto 7/37) pa moji prijatel je zahtevao od mene da naprvaim program koja ce generise sve mozne kombinacije i da gi snima vo text fajl. no ima i drugi zadatak. Od sve tih kombinacija treba da se odelat sve mozni kombinacija u razlicitih text falovima sa 3:4 4:3 5:2 2:5 (paren:neparen)
pr.1. da bi u text1 biti generisani svi kombinacija sa 3:4(paren:neparen) odnos
1,6,2,3,7,9,8
1,6,2,3,7,11,8
i tako dajle
pa znaci meni treba program sta ce generise u razlicitih text fajlovima razlicitih kombinacija sa 37 broja od 7 broja.
text: sve moznih kombinacijama
text1: 3:4 (paren:neparen)
text2: 4:3(paren:neparen)
text3: 5:2(paren:neparen)
text4: 2:5(paren:neparen)

sve je dobrodojdeno svi soveti i mislenja posto ja ne znam ni kao da pocnem :) hvala puno
Potpis
Rogues do it from behind! :)
Re: loto program 21.08.2007. u 10:45 · pre 233 meseca #2
Citat:
lordy007: Pa hocu da napravim neki program koju ce generise sve mozne kombinace od set [1..37] od 7 elementi (normalno za loto 7/37)
...
sve je dobrodojdeno svi soveti i mislenja posto ja ne znam ni kao da pocnem :) hvala puno


Ima previše kombinacija da bi imalo smisla generisati svaku moguću i zapisati je u fajl. Čak i da to uradiš, ostaje pitanje na osnovu čega će tvoj prijatelj da izabere onu koju će da odigra?

Po meni je najbolje rešenje da mu program da onoliko kombinacija koliko mu treba po njegovim uslovima.

Iako dodatni uslovi deluju u početku pomalo komplikovano, stvar je u suštini veoma jednostavna.

Svi znamo kako izgleda izvlačenje brojeva. Prvo se izmešaju loptice, pa se izvuče 7 komada. :)

Primeni istu stvar na svoj program.

1. Izmešaš niz brojeva od 1 do 37
2. Uzmeš prvih 7 i zapišeš u fajl
3. Uzmeš prva 4 parna, zatim prva 3 neparna i zapišeš u drugi fajl
4. Uzmeš prva 3 parna, zatim prva 4 neparna i zapišeš u treći fajl
5. Uzmeš prvih 5 parnih, zatim prva 2 neparna i zapišeš u četvrti fajl
6. Uzmeš prva 2 parna, zatim prvih 5 neparnih i zapišeš u peti fajl
7. Ponoviš postupak od 1 do 6 onoliko puta koliko mu kombinacija treba

Što se tiče prvog koraka možda nabolje da kreneš sa procedurom Izmesaj_niz koju je Mijo napisao u ovoj poruci http://www.elitesecurity.org/t278642-0#1673727
Potpis
viking ®
Re: loto program 21.08.2007. u 10:46 · pre 233 meseca #3
Da vidimo koliko slogova treba da ima svaki od tih fajlova

0:7 - 50,388
1:6 - 488,376
2:5 - 1,779,084
3:4 - 3,162,816
4:3 - 2,965,140
5:2 - 1,465,128
6:1 - 352,716
7:0 - 31,824

Ukupno 10,295,472

Da li i dalje želiš da ispisuješ sve te silne kombinacije?
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: loto program 21.08.2007. u 10:51 · pre 233 meseca #4
Citat:
Nedeljko: Da vidimo koliko slogova treba da ima svaki od tih fajlova

0:7 - 50,388
1:6 - 488,376
2:5 - 1,779,084
3:4 - 3,162,816
4:3 - 2,965,140
5:2 - 1,465,128
6:1 - 352,716
7:0 - 31,824

Ukupno 10,295,472

Da li i dalje želiš da ispisuješ sve te silne kombinacije?


Kombinatorika mi nikad nije bila jača strana, tako da ne znam da li su brojke tačne, ali se u potpunosti slažem sa tobom da je totalno bespotrebno to raditi.

Odmah sam se setio scene iz filma "Potera za Srećkom" gde Mićko drži par hiljada listića i kaže novinarki: "Nema ako dobijem, nego kad dobijem." :)

Mislim da je mnogo bolje da mu svaki put program da onoliko kombinacija koliko mu treba po njegovim uslovima.
Potpis
viking ®
Re: loto program 21.08.2007. u 13:39 · pre 233 meseca
izmenjeno 1 put, poslednji put lordy007 21.08.2007. u 23:56
  1. lordy00721.08.2007. u 23:56zapis iz teksta poruke
#5
jeste 10295472 kombinacije :) znam da je mnogo i jos zelim da napravim taj program...filozofija mog prijatelja je 80% i vise od tih parni neparni kombinacija se izvlekuje u loto...do dusa ja ne ni igram loto :) li jeste seusete zelim da napravim taj program.... :)
Citat:
Njedelko ucekujem vishe...
Potpis
Rogues do it from behind! :)
Re: loto program 21.08.2007. u 23:58 · pre 233 meseca #6
Citat:
Što se tiče prvog koraka možda nabolje da kreneš sa procedurom Izmesaj_niz koju je Mijo napisao u ovoj poruci http://www.elitesecurity.org/t278642-0#1673727

to mi ne treba meni samo treba da izgenerisem teh kombinacija u text fajlovima i nista druge :) hvala ipak
Potpis
Rogues do it from behind! :)
Re: loto program 22.08.2007. u 07:01 · pre 233 meseca #7
e aj kas navalio;)..eo koda,nadam se da imaš Pascal,kompajliraj i piči!ak ne,mogu ja stavit i exe..


Code:

program Project2;

type niz=array[0..7]of integer;

  var
  kom:array[1..2]of niz;
  f1,f2,f3,f4:textfile;

  function omjer(p,np:integer;n:niz):boolean;
  var
  i,a,b:integer;
  begin
  a:=0; b:=0;
    for i:=1 to 7 do if (n[i] mod 2) = 0 then inc(a) else inc(b);
    if (a=p)and(b=np)then omjer:=true else omjer:=false;
  end;

  procedure prepisi;
  var
  i:integer;
  s,s1:string;
  begin

    for i:=1 to 7 do begin str(kom[2,i],s1); s:=s+s1+' ';end;

    if omjer(3,4,kom[2])then writeln(f1,s)
    else if omjer(4,3,kom[2])then writeln(f2,s)
    else if omjer(5,2,kom[2])then writeln(f3,s)
    else if omjer(2,5,kom[2])then writeln(f4,s) ;

  end;

  procedure generiraj(n,k:integer);
  var
  j,t:integer;
  begin
  kom[1,0]:=-1;
    for j:=1 to k do kom[1,j]:=j;
  t:=1;

    while t<>0 do
      begin
        for j:=0 to k do kom[2,j]:=kom[1,j];
      t:=k;
        while kom[2,t]=n-k+t do dec(t);
      kom[2,t]:=kom[2,t]+1;
        for j:=t+1 to k do kom[2,j]:=kom[2,j-1]+1;
      prepisi;
      kom[1]:=kom[2];
      end;

  end;

begin
assign(f1,'text1.txt');
assign(f2,'text2.txt');
assign(f3,'text3.txt');
assign(f4,'text4.txt');
rewrite(f1);
rewrite(f2);
rewrite(f3);
rewrite(f4);

generiraj(37,7);

close(f1);
close(f2);
close(f3);
close(f4);

readln;
end.


et,puno sreće tebi i tvom drugaru ;)..mada ne znam kak će ti ovo pomoć..

a što se tiče algoritma,za one koje zanima:
generiraju se kombinacije u leksikografskom poretku
dakle krenemo od prve kombinacije 1..k(kod nas je to od 1..7) i u svakom koraku radimo sljedeće:
krenemo od desna na ljevo u kombinaciji i tražimo prvi broj za kojeg nevrjedi n-k+p=kom[p],jer je maximalna vrijednost za broj na p-tom mjestu
n-k+p(npr za n=5,k=3 zadnja kombinacija sa max vrijednostima je 345,za p=2 max broj je 4)
kad ga nađemo,uvećamo ga za jedan,a brojevi koji su desno od njega su redom za jedan veći od prethodnika
ispišemo drugi red,i onda ga prekopiramo u prvi red matrice s kojom radimo
npr. n=6,k=4
poč.komb
1234
prvi broj od desna
4
uvećamo za 1
5
dalje nema brojeva,kombinacija
1235
...
2356
prvi broj
3
uvećamo
4
svi sljedeći brojevi desno
4+1=5,5+1=6
kombinacija
2456

inače,postoji mali bugić:prva kombinacija će biti ispisana zadnja,lako se da sredit,al to i nije tako bitno..to je iz razloga što koristimo matricu sa sam dva reda,umjesto sa nk(broj kombinacija)redova,što bi u ovom slučaju zauzelo puno memorije

ipak,smatram da pogađanjem kombinacija nebi daleko stigli..jer nama netreba jedna slučajna,već sve kombinacije..al valjalo bi probat
pozz
Re: loto program 22.08.2007. u 15:13 · pre 233 meseca #8
druze hvala puno :) ovo cu da kompajliram u delphi!THANKS ALOT ;)
Potpis
Rogues do it from behind! :)
Re: loto program 23.08.2007. u 02:19 · pre 233 meseca #9
nemogu to prevediti u delphi ..jer ne znam neke osnovni funkcii pascala mozes li mi pomoci nesto oko toga?
Potpis
Rogues do it from behind! :)
Re: loto program 23.08.2007. u 06:38 · pre 233 meseca #10
Umesto
Code:

assign(f1,'text1.txt');
assign(f2,'text2.txt');
assign(f3,'text3.txt');
assign(f4,'text4.txt');
rewrite(f1);
rewrite(f2);
rewrite(f3);
rewrite(f4);

generiraj(37,7);

close(f1);
close(f2);
close(f3);
close(f4);

readln;

Stavi:
Code:

rewrite(f1,'text1.txt');
rewrite(f2,'text2.txt');
rewrite(f3,'text3.txt');
rewrite(f4,'text4.txt');

generiraj(37,7);

closefile(f1);
closefile(f2);
closefile(f3);
closefile(f4);
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: loto program 23.08.2007. u 09:02 · pre 233 meseca #11
netrebas nista mjenjati samo ispod program stavi {$APPTYPE CONSOLE}
Re: loto program 24.08.2007. u 00:49 · pre 233 meseca #12
treba i u uses list stavit SySUtils:
Code:

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type niz=array[0..7]of integer;

  var
  kom:array[1..2]of niz;
  f1,f2,f3,f4:textfile;

  function omjer(p,np:integer;n:niz):boolean;
  var
  i,a,b:integer;
  begin
  a:=0; b:=0;
    for i:=1 to 7 do if (n[i] mod 2) = 0 then inc(a) else inc(b);
    if (a=p)and(b=np)then omjer:=true else omjer:=false;
  end;

  procedure prepisi;
  var
  i:integer;
  s,s1:string;
  begin

    for i:=1 to 7 do begin str(kom[2,i],s1); s:=s+s1+' ';end;

    if omjer(3,4,kom[2])then writeln(f1,s)
    else if omjer(4,3,kom[2])then writeln(f2,s)
    else if omjer(5,2,kom[2])then writeln(f3,s)
    else if omjer(2,5,kom[2])then writeln(f4,s) ;

  end;

  procedure generiraj(n,k:integer);
  var
  j,t:integer;
  begin
  kom[1,0]:=-1;
    for j:=1 to k do kom[1,j]:=j;
  t:=1;

    while t<>0 do
      begin
        for j:=0 to k do kom[2,j]:=kom[1,j];
      t:=k;
        while kom[2,t]=n-k+t do dec(t);
      kom[2,t]:=kom[2,t]+1;
        for j:=t+1 to k do kom[2,j]:=kom[2,j-1]+1;
      prepisi;
      kom[1]:=kom[2];
      end;

  end;

begin
assign(f1,'text1.txt');
assign(f2,'text2.txt');
assign(f3,'text3.txt');
assign(f4,'text4.txt');
rewrite(f1);
rewrite(f2);
rewrite(f3);
rewrite(f4);

generiraj(37,7);

close(f1);
close(f2);
close(f3);
close(f4);

readln;
end.

ideš file/new/other../console application, prekopiraš ovo i to je to
Re: loto program 25.08.2007. u 06:26 · pre 233 meseca #13
puno hvala radi sovrseno! a toliko jednostavno :)
Potpis
Rogues do it from behind! :)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme