Novo

Forum kao aplikacija na telefonu

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

  • 7 odgovora
  • 4.233 pregleda

Najnovija ↓

Sve kombinacije!!! 14.05.2010. u 20:58 · pre 200 meseci #1
Da li bi netko mogao napraviti program ako nije problem,a nije zurno koji radi ovo:

ispisuje na ekran sve moguce kombinacije od 3 znaka,recimo a,b,c: a,b,c,aa,ab,ac,bb,ba,bc,cc,ca,cb,aaa,aab,aac,aba,a bb,abc,.... itd

Znam da treba nesto prije uradit sam da bi bilo po pravilima foruma,ali stvarno ne znam kako,na prvi pogled mi izgleda da treba puno for petlji....(ima previse kombinacija)
Re: Sve kombinacije!!! 14.05.2010. u 22:09 · pre 200 meseci #2
Takvih kombinacija ima beskonačno. Na primer, i abcabcabcabcabcabc je jedna takva kombinacija. Da nema neko ograničenje, recimo maksimalan broj slova? Druga stvar, jesi li siguran da kombinacije mogu da imaju i manje slova od tog maksimalnog broja? Pitam jer je jednostavnije ako sve kombinacije imaju isti broj slova.
Re: Sve kombinacije!!! 15.05.2010. u 11:59 · pre 200 meseci #3
Da moja greska,mislio sam na max 3 znaka,i da moze imat manje,ali ako je i to pretesko kako onda samo od 3 znaka sve kombinacije.
Re: Sve kombinacije!!! 15.05.2010. u 13:52 · pre 200 meseci #4
Pitanje je da li ovo treba da se rešava rekurzijom. Može i bez rekurzije, sa trostrukom for petljom, ali ako ti profesor kaže "dobro, a sad ispiši sve kombinacije sa maksimalno 20 znakova", to bi trebalo da bude 20-struka petlja, što nije baš lepo prizor. Recimo da ne mora rekurzija. I recimo za početak da treba da ispišeš sve kombinacije sa tačno 3 znaka, to jest aaa, aab, ..., ccc. Ako imaš trostruku petlju vrlo je prosto. Svaki od tri brojača je jedan znak, a ta tri znaka u nizu daju jednu kombinaciju. Zaglavlje svake od tri petlje bi recimo izgledala ovako: for (char i3 = 'a'; i3 <= 'c'; i3++). I analogno za unutrašnje i2 i i1. Telo petlje je onda prosto printf("%c%c%c\n", i3, i2, i1). Za dvoslovne i jednoslovne kombinacije treba samo da ubaciš dva printf-a na pravo mesto negde unutar ove tri petlje. Ali ispiši prvo samo troslovne kombinacije za početak.
Re: Sve kombinacije!!! 15.05.2010. u 13:57 · pre 200 meseci #5
Code:

#include <iostream>
#include <algorithm>
using namespace std;
int main ()
{
  char s[] = "car";
  sort(s,s+3);
  do
    cout << s << " ";
  while (next_permutation(s,s+3));
}

Evo primer koda koji će ti dati sve moguće kombinacije sa 3 slova, a još malo koda mogo bi dobiti i sa 2 slova, pa ti malo razmisli. Funkcija sort je potrebna da postavi niz u rastući redosled da bi mogla funkcija next_permutation raditi da izbacuje sve kombinacije. Nadam se da može pomoći. Da ti ne uradim čitav zadatak.
Potpis
Dođite na http://www.yoyogames.com/games/show/74141 i pogledajte moje igrice i isto tako ocjenite ;)
Re: Sve kombinacije!!! 15.05.2010. u 14:35 · pre 200 meseci #6
Obično je uslov ovakvih zadataka da ne koristiš gotove funkcije. Ali treba pitati profesora :-)
Re: Sve kombinacije!!! 15.05.2010. u 16:33 · pre 200 meseci #7
ma nema nikakvog profesora jednostavno mi palo napamet,znaci sve se moze koristit.
Re: Sve kombinacije!!! 15.05.2010. u 16:43 · pre 200 meseci
izmenjeno 1 put, poslednji put negative7 15.05.2010. u 17:00
  1. negative715.05.2010. u 17:00zapis iz teksta poruke
#8
Evo prema ovome sto Mihajlo kaze,ali stvar je u tome da uopce ne znam jesu li to sve moguce kad ne znam ni koliko ih moze bit razlicitih...i kako kod ucinit preglednijim sa rekurzijom..u biti kako vi razmisljate kako upotrijebit rekurziju,dobro evo kad se nesto ponavlja ali kako evo bas sad na ovom primjeru ili nekom drugom,nekako mi se rekurzija cini zapetljana..
Code:

#include <iostream>

using namespace std;
int main ()
{
  char i3,i2,i1;
  for(i3='a';i3<='c';i3++)
  {
      cout<<i3<<endl;
    for(i2='a';i2<='c';i2++)
    {
        cout<<i3<<i2<<endl;
        for(i1='a';i1<='c';i1++)
        {
            cout<<i3<<i2<<i1<<endl;
        }
    }
  }
}
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme