indexieren:



  • Misst die Ausgabe vergessen:

    Alle Zykluslaengen der Spiegelzahl 65530:
    Zykluslaenge 1 kommt 1x vor
    Zykluslaenge 2 kommt 8x vor
    Zykluslaenge 117 kommt 13104x vor
    Zykluslaenge 468 kommt 52416x vor
    
    Alle Zykluslaengen der Spiegelzahl 65531:
    Zykluslaenge 9 kommt 18x vor
    Zykluslaenge 431 kommt 3448x vor
    Zykluslaenge 7758 kommt 62063x vor
    
    Alle Zykluslaengen der Spiegelzahl 65532:
    Zykluslaenge 1 kommt 11x vor
    Zykluslaenge 7 kommt 1008x vor
    Zykluslaenge 14 kommt 64510x vor
    
    Alle Zykluslaengen der Spiegelzahl 65533:
    Zykluslaenge 6 kommt 12x vor
    Zykluslaenge 35 kommt 70x vor
    Zykluslaenge 420 kommt 840x vor
    Zykluslaenge 2485 kommt 4970x vor
    Zykluslaenge 29820 kommt 59637x vor
    
    Alle Zykluslaengen der Spiegelzahl 65534:
    Zykluslaenge 1 kommt 1x vor
    Zykluslaenge 3 kommt 12x vor
    Zykluslaenge 5 kommt 60x vor
    Zykluslaenge 15 kommt 65456x vor
    
    Alle Zykluslaengen der Spiegelzahl 65535:
    Zykluslaenge 1 kommt 2x vor
    Zykluslaenge 2 kommt 4x vor
    Zykluslaenge 4 kommt 24x vor
    Zykluslaenge 8 kommt 480x vor
    Zykluslaenge 16 kommt 65019x vor
    
    Alle Zykluslaengen der Spiegelzahl 65536:
    Zykluslaenge 1 kommt 65529x vor
    
    Alle Zykluslaengen der Spiegelzahl 65537:
    Zykluslaenge 16 kommt 65529x vor
    
    Alle Zykluslaengen der Spiegelzahl 65538:
    Zykluslaenge 1 kommt 5x vor
    Zykluslaenge 3 kommt 12x vor
    Zykluslaenge 5 kommt 60x vor
    Zykluslaenge 15 kommt 65452x vor
    
    Alle Zykluslaengen der Spiegelzahl 65539:
    Zykluslaenge 32769 kommt 65529x vor
    
    Alle Zykluslaengen der Spiegelzahl 65540:
    Zykluslaenge 1 kommt 3x vor
    Zykluslaenge 2 kommt 16x vor
    Zykluslaenge 14 kommt 65510x vor
    


  • Zykluslaenge 29820 kommt 59637x vor

    Oha ! 😃



  • out schrieb:

    int main()
    {
    	map<long long,map<long long,long long>> zyklen_laengen;
    
    	long long begin_startzahl   = 1;
    	long long begin_spiegelzahl = 65530;
    
    	long long end_startzahl     = begin_spiegelzahl; // end = ausschliesslich
    	long long end_spiegelzahl   = 65541;
    
    	for(long long startzahl=begin_startzahl; startzahl!=end_startzahl; ++startzahl)
    	{
    		for(long long spiegelzahl=begin_spiegelzahl; spiegelzahl!=end_spiegelzahl; ++spiegelzahl)
    		{
    			++zyklen_laengen[ spiegelzahl ][ finde_zyklus_laenge(startzahl,spiegelzahl) ];
    		}
    	}
    
    	for(const auto& p : zyklen_laengen)
    	{
    		cout << "Alle Zykluslaengen der Spiegelzahl " << p.first << ':' << '\n';
    
    		for(const auto& m : p.second)
    		{
    			cout << "Zykluslaenge " << m.first << " kommt " << m.second << "x vor" << '\n';
    		}
    		cout << '\n';
    	}
    }
    

    würde ich schreiben als

    int main() 
    {
    	long long begin_spiegelzahl = 65530;
    	long long end_spiegelzahl   = 65541;
    
    	for(long long spiegelzahl=begin_spiegelzahl; spiegelzahl!=end_spiegelzahl; ++spiegelzahl) 
    	{
    		map<long long,long long> zyklen_laengen;
    
    		for(long long startzahl=1; startzahl!=spiegelzahl; ++startzahl) 
    		{
    			++zyklen_laengen[ finde_zyklus_laenge(startzahl,spiegelzahl) ];
    		}
    
    		cout << "Alle Zykluslaengen der Spiegelzahl " << spiegelzahl << ':' << '\n';
    		for(const auto& m : zyklen_laengen) 
    		{
    			cout << "Zykluslaenge " << m.first << " kommt " << m.second << "x vor" << '\n';
    		}
    		cout << '\n';
    	}
    }
    


  • @out ...

    Zykluslänge ist uninteressant ohne Angabe der Zyklen selbst. Also hinter Zykluslänge 4 können sich zwei vom Zahlenbestand grundverschiedene Zyklen verbergen .... Darum ging es mir eigentlich.



  • volkard schrieb:

    [code="cpp"]
    int main()
    {
    long long begin_spiegelzahl = 65530;
    long long end_spiegelzahl = 65541;

    for(long long spiegelzahl=begin_spiegelzahl; spiegelzahl!=end_spiegelzahl; ++spiegelzahl)
    {
    map<long long,long long> zyklen_laengen;

    for(long long startzahl=1; startzahl!=spiegelzahl; ++startzahl)
    {
    ++zyklen_laengen[ finde_zyklus_laenge(startzahl,spiegelzahl) ];
    }

    cout << "Alle Zykluslaengen der Spiegelzahl " << spiegelzahl << ':' << '\n';
    for(const auto& m : zyklen_laengen)
    {
    cout << "Zykluslaenge " << m.first << " kommt " << m.second << "x vor" << '\n';
    }
    cout << '\n';
    }
    }
    [/code]

    wäre nicht besser, man schriebe: startzahl!=spiegelzahl/2;

    denn es liegt Symmetrie vor ...



  • out schrieb:

    Alle Zykluslaengen der Spiegelzahl 65536:
    Zykluslaenge 1 kommt 65529x vor

    Alle Zykluslaengen der Spiegelzahl 65537:
    Zykluslaenge 16 kommt 65529x vor
    [/code]

    Das, Out, ist auch erklärungsbedürftig ...

    es steht ja immerhin Alle Zykluslängen da ...???

    übrigens ist die Zyklensumme bei Spiegelzahl 100, Faktor 2 all geraden Zahlen als Zahl, jedemahl 496, das ist eine vollkommene Zahl.



  • #include <stdio.h>
    #include <iostream>
    #include <vector>
    #include <time.h>
    #include <sys/time.h>
    
    using namespace std;
    vector<int> Teiler;
    int Zehler;
    int TS=0;
    int n;
    int i;
    
    int main ()
    {
        for (int n=1;n==10;++n)
        {
        cout <<n<<" =n \n"; //Kontrollcout
    
            for (i=1;i==10;++i)
                {
                 int   Sum=n+i;
                    cout<<"n/i "<<n<<"+"<<i<<"= "<<Sum<<"=sum \n";
                }
        }
        return (0);
    }
    


  • Schleifen werden abgearbeitet, solange die Bedingung erfüllt ist ...



  • Vergiss den Begriff "Abbruchbedingung"!



  • Heisst ja auch Laufbedingung 😉


Anmelden zum Antworten