Zahlenreihen in Lotto



  • Ich bekomme das nicht gebacken.

    Also das Programm soll alle möglichen Kombinationen ausgeben 6/49

    z.B. gebe ich 7 ein

    123456
    123457
    123467
    123567
    124567
    134567
    234567

    Alle Kombinationen mit sieben Zahlen

    könnt ihr mir ein paar Ratschläge geben wie ich das machen soll.



  • alle lottokombinatinen bekommt man mit sowas:

    #include <iostream>
    
    int main()
    {
       for(int a=1;a<=49;++a)
        for(int b=a+1;b<=49;++b)
         for(int c=b+1;c<=49;++c)
          for(int d=c+1;d<=49;++d)
           for(int e=d+1;e<=49;++e)
            for(int f=e+1;f<=49;++f)
             std::cout << a << ' ' << b  << ' ' << c  << ' ' << d  << ' ' << e  << ' ' << f << std::endl;
    
       return 0;
    }
    

    ist zwar nicht elegant aber funktioniert.



  • leider nicht nach dem lotto prinip, denn wenn in a die 49 kommt, darf sie in b nicht mehr kommen 🙂



  • otze schrieb:

    leider nicht nach dem lotto prinip, denn wenn in a die 49 kommt, darf sie in b nicht mehr kommen 🙂

    stimmt es müsste heissen:

    #include <iostream>
    
    int main()
    {
       for(int a=1;a<=44;++a)
        for(int b=a+1;b<=45;++b)
         for(int c=b+1;c<=46;++c)
          for(int d=c+1;d<=47;++d)
           for(int e=d+1;e<=48;++e)
            for(int f=e+1;f<=49;++f)
             std::cout << a << ' ' << b  << ' ' << c  << ' ' << d  << ' ' << e  << ' ' << f << std::endl;
    
       return 0;
    }
    

    oder?

    p.s. is doch wurscht... die ungültigen nummern hat auch die erste version nicht ausgegeben, weil die abbruchbedingung der nächsten schleife automatisch erfüllt ist



  • Der Hinweiss hat mir geholfen. Danke.

    Ich habe die 49 ersätzt durch 49-5,49 -4, 49-3 ect...



  • Da war ich paar sekunden zu spät 😃



  • ähhh paar Minuten 😃 😃 😃 Danke an beide.



  • japro schrieb:

    otze schrieb:

    leider nicht nach dem lotto prinip, denn wenn in a die 49 kommt, darf sie in b nicht mehr kommen 🙂

    stimmt es müsste heissen:
    [cpp]
    #include <iostream>

    int main()
    {
    for(int a=1;a<=44;++a)
    for(int b=a+1;b<=45;++b)
    for(int c=b+1;c<=46;++c)
    for(int d=c+1;d<=47;++d)
    for(int e=d+1;e<=48;++e)
    for(int f=e+1;f<=49;++f)
    std::cout << a << ' ' << b << ' ' << c << ' ' << d << ' ' << e << ' ' << f << std::endl;

    return 0;
    }[/cp p]
    oder?

    p.s. is doch wurscht... die ungültigen nummern hat auch die erste version nicht ausgegeben, weil die abbruchbedingung der nächsten schleife automatisch erfüllt ist

    Auch das ist falsch!



  • Naps schrieb:

    Auch das ist falsch!

    wie wärs mit ner begründung? ich bin eigentlich von der korrektheit überzeugt.



  • japro schrieb:

    Naps schrieb:

    Auch das ist falsch!

    wie wärs mit ner begründung? ich bin eigentlich von der korrektheit überzeugt.

    zB kommt da die zahlenreihe 42,42,42,42,42,42 vor, kannste die auf nem lottoschein tippen? 🙄

    für sowas bietet die stl übrigens std::next_permutation 😋


Log in to reply