Abbildung, bei zweielementiger Bildmenge?

Guten Morgen (um halb 2),

Bei dieser Aufgabe scheiden sich momentan leider die Geister, was die Lösung angeht.

Wieviele Abbildungen von {1,2,3,4} nach {1,2,3,4,5,6} gibt es, für die die Bildmenge(i) zwei Elemente hat

Die offizielle Musterlösung behauptet folgendes

"Bei diesem Fall müssen wir besonders aufpassen, denn hier gibt es 2 Fälle. Erstens: 3 Zahlenwerden auf eine Zahl abgebildet und eine Zahl auf eine Andere. Zweitens: Jeweils 2 Zahlen bilden auf die selbe Zahl ab.Bei beiden Fällen gibt es 2 Zahlen im Bildbereich, die beliebig aber unterschiedlich gewähltwerden dürfen. Daraus folgen schon mal 6·5 M öglichkeiten. Im ersten Fall müssen 3 der 4 Argumente auf die selbe Zahl abgebildet werden. Dafür gibt es 4 Möglichkeiten. Beim zweiten Fall muss es zwei Pärchen bei 4 Zahlen geben. Dafür gibt es 6 Möglichkeiten, aber da die Fälle,wie “1 und 3, und 3 und 1 bilden ein Paar” gleich sind müssen wir die 6 noch durch 2 teilen. Es folgt: 6·5·(4 +6/2) = 210"

Mir ist jetzt unklar, warum 6 durch 2 geteilt werden muss. Wir haben doch 6 Fälle. 1 und 2 bilden auf diesselbe Zahl ab

1 und 3 bilden auf diesselbe Zahl ab

1 und 4 bilden auf diesselbe Zahl ab

2 und 3 bilden auf diesselbe Zahl ab

2 und 4 bilden auf diesselbe Zahl ab

3 und 4 bilden auf diesselbe Zahl ab

=> 6 Möglichkeiten

Jetzt steht aber im Text "Fälle wie 1 und 3 und 3 und 1 bilden ein Paar" müssen gestrichen werden.

Und daraus würden dann 6 / 2 Möglichkeiten resultieren.

Aber die 6 Möglichkeiten waren doch nur (1,2), (1,3), (1,4). (2,3), (2,4) und (3,4). Da war doch diese Doppelung (1,3) und (3,1) gar nicht enthalten.

Oder meinen die damit, dass man die Fälle, dass z.b. (1,3) auf die Zahlen (3,1) abgebildet werden, streichen muss? Dann müssten aber auch alle Fälle wie (1,2) bilden auf (2,1) ab u.s.w. gestrichen werden und nicht nur die Hälfte?

Nehmen wir mal an, die erste getroffene Zahl in der Bildmenge wäre die 5 und die zweite getroffene Zahl in der Bildmenge wäre die 6. (Klappt natürlich auch mit 3 und 4 oder 1 und 2 als getroffene Zahlen in der Bildmenge.

Komme trotzdem auf 6 Fälle

was meinen die mit mit "1 und 3 bilden ein Paar und 3 und 1 bilden ein Paar" Meinen die ein Paar in der Bildmenge? Oder das 1 und 3 und 3 und 1 auf diesselbe Zahlen abgebildet werden? Wie genau sehen diese 6 / 2 = 3 Fälle eigentlich aus?

Mit gräulichen Füßen,

Abbildung, bei zweielementiger Bildmenge?
Bilder, Studium, Schule, Mathematik, Mathe, rechnen, Informatik, menge, Statistik, Stochastik, Uni, mengenlehre, Abbildung
C++ 2Schleifen gleichzeitig laufen lassen?

Ich habe in c++ auf einem Arduino Board eine Disco mit 3 RGBs gebaut, und auch eigentlich schon fertig programmiert, jedoch werden die 3 Schleifen für die 3 RGBs nacheinander Abgespielt, sie sollten aber gleichzeitig abgespielt werden. Kann mir da jemand Vielleicht helfen?

Mein Code:

// C++ code

//

int Disco = 0; //Variable Disco erstellen

int Disco2 = 0;

int Disco3 = 0;

int counter;

void setup()

{

 pinMode(0, OUTPUT); // outptus definieren

 pinMode(1, OUTPUT);

 pinMode(2, OUTPUT);

 pinMode(3, OUTPUT);

 pinMode(4, OUTPUT);

 pinMode(5, OUTPUT);

 pinMode(6, OUTPUT);

 pinMode(7, OUTPUT);

 pinMode(8, OUTPUT);

  

}

void loop()

{

  

  

 for (counter = 0; counter < 10; ++counter) {

 Disco = rand() % 4 + 1; // Variable Disko eine random zahl von 1-3 geben

  if (Disco == 1) { //fragen, ob es eine 1 ist

   digitalWrite(0, HIGH); //an

    delay(100); // Warten

 digitalWrite(0, LOW); //aus

 delay(10); // Warten

  }

  if (Disco == 2) { //fragen, ob es eine 2 ist

   digitalWrite(1, HIGH); //an

    delay(100); // Warten

 digitalWrite(1, LOW); //aus

 delay(10); // Warten

  }

  if (Disco == 3) { //fragen, ob es eine 3 ist

   digitalWrite(2, HIGH); //an

    delay(100); // Warten

 digitalWrite(2, LOW); //aus

 delay(10); // Warten

  }

  Disco = 0; // variable wieder den wert 0 geben

 }

 delay(10); //ende

  

  for (counter = 0; counter < 10; ++counter) {

 Disco2 = rand() % 4 + 1; // Variable Disko eine random zahl von 1-3 geben

  if (Disco2 == 1) { //fragen, ob es eine 1 ist

   digitalWrite(3, HIGH); //an

    delay(100); // Warten

 digitalWrite(3, LOW); //aus

 delay(10); // Warten

  }

  if (Disco2 == 2) { //fragen, ob es eine 2 ist

   digitalWrite(4, HIGH); //an

    delay(100); // Warten

 digitalWrite(4, LOW); //aus

 delay(10); // Warten

  }

  if (Disco2 == 3) { //fragen, ob es eine 3 ist

   digitalWrite(5, HIGH); //an

    delay(100); // Warten

 digitalWrite(5, LOW); //aus

 delay(10); // Warten

  }

  Disco2 = 0; // variable wieder den wert 0 geben

 }

 delay(10); //ende

  

   for (counter = 0; counter < 10; ++counter) {

 Disco3 = rand() % 4 + 1; // Variable Disko eine random zahl von 1-3 geben

  if (Disco3 == 1) { //fragen, ob es eine 1 ist

   digitalWrite(6, HIGH); //an

    delay(100); // Warten

 digitalWrite(6, LOW); //aus

 delay(10); // Warten

  }

  if (Disco3 == 2) { //fragen, ob es eine 2 ist

   digitalWrite(7, HIGH); //an

    delay(100); // Warten

 digitalWrite(7, LOW); //aus

 delay(10); // Warten

  }

  if (Disco3 == 3) { //fragen, ob es eine 3 ist

   digitalWrite(8, HIGH); //an

    delay(100); // Warten

 digitalWrite(8, LOW); //aus

 delay(10); // Warten

  }

  Disco3 = 0; // variable wieder den wert 0 geben

 }

 delay(10); //ende

}

Computer, Programm, Programmieren, Informatik
c++ Mindestgenauigkeit?

Hey Leute,

brauche Hilfe bei folgender Aufgabe:

Lassen Sie dafür den Benutzer eine frei wählbare Mindest-Genauigkeit der Berechnung eingeben, wie z.B. 0.001(ein Tausendstel), und brechen Sie die Schleife ab, sobald die gewünschte Genauigkeit erreicht ist. Die Genauigkeit ergibt sich natürlich aus der Differenz zwischen den Werten von xnund xn-1.

Mein quellcode sieht bis jetzt so aus:

int main()
{
    double in{ 0.0 };                                       //Initialisieren der input Zahl
    double x{ 1.0 };
    double xn{ 1.0 };
    int p{ 0 };

    cout << "Geben Sie eine Fliesskommazahl ein um die Wurzel zu berechnen: \n";
    cin >> in;                                                      //Einlesen der zu berechnenden Zahl

    cout << "Geben Sie die gewuenschte Genauigkeit ein: " << "\n";  //User wird aufgefordert die Genauigkeit der double einzugeben
    cin >> p;

    if (in > 0);                                            //Wenn input höher als null ist wird ausgeführt:
    {
        cout << "Sie haben folgende Zahl zum berechnen eingegeben: " << in << "\n";                                 //Input Zahl wird ausgegeben
        while (x - (x-1) <= p)                         //i startet bei 0 und wird bis zum 8. Durchlauf ausgeführt
        {
            x = xn;                                         //Zuweisung für die Wurzel
            xn = (x + in / x) / 2;                          //Zuweisung der Formel der Wurzelberechnung für xn
           // cout.precision(p);                              //Die Zahlen werden mit der Genauigkeit p ausgegeben
            cout << x << "\n";                              //Ausgabe der Wurzelberechnung
        }
        
        cout << "Die Wurzelberechnung ergibt: " << x << "\n";
    }
    
    return 0;
}

wie kann ich meine while schleife ändern, sodass ich die aufgabe erfülle? hänge hier fest..

Computer, Schule, Mathematik, Technik, Programmieren, CPP, Informatik
Warum kann man ein C Programm nicht mor negativen Werten rechnen?

#include<stdio.h>

#include<math.h>

#define SWAP1(N1,Z1) {(N1) += (Z1); (Z1) = (N1) -(Z1); (N1) -= (Z1);}

#define SWAP2(N2,Z2) {(N2) += (Z2); (Z2) = (N2) -(Z2); (N2) -= (Z2);}

int ggT1(int,int);

int ggT2(int,int);

int main(void)

{

double N,Z,Nneu,Zneu,A1,A2,A3,A4,S1,S2,S3,S4,N1,N2,Z1,Z2,M1,M2,D1,D2;

printf("\nBruchrechner");

printf("\n===========================================\n");

printf("\nNenner 1 (natuerliche Zahl) eingeben :");

scanf("%lf",&N1);

printf("\nZaehler 1 (natuerliche Zahl) eingeben:");

scanf("%lf",&Z1);

printf("\nNenner 2 (natuerliche Zahl) eingeben :");

scanf("%lf",&N2);

printf("\nZaehler 2 (natuerliche Zahl) eingeben:");

scanf("%lf",&Z2);

    printf("\n------------------------------------------");

printf("\nErgebnis:\n");

A1 = N1*Z2;

A2 = N2*Z1;

A3 = A1+A2;

A4 = Z1*Z2;

printf("\nAddition:    %lf/%lf + %lf/%lf = %lf/%lf",N1,Z1,N2,Z2,A3/ggT1(A3,A4),A4/ggT2(A3,A4));

    S1 = N1*Z2;

    S2 = N2*Z1;

    S3 = S1-S2;

    S4 = Z1*Z2;

printf("\nSubtraktion:  %lf/%lf - %lf/%lf = %lf/%lf",N1,Z1,N2,Z2,S3/ggT1(S3,S4),S4/ggT2(S3,S4));

M1 = N1*N2;

M2 = Z1*Z2;

printf("\nMultiplikation: %i/%i * %i/%i = %i/%i",N1,Z1,N2,Z2,M1/ggT1(M1,M2),M2/ggT2(M1,M2));

D1 = N1*Z2;

D2 = Z1*N2;

printf("\nDivision:    %i/%i * %i/%i = %i/%i\n",N1,N2,Z1,Z2,D1/ggT1(D1,D2),D2/ggT2(D1,D2));

return 0;

}

  int ggT1(int N1, int Z1)

  {

int Hilf1;

while(Z1 != 0)

{

if(N1 < Z1) SWAP1(N1,Z1);

Hilf1 = N1;

N1 = Z1;

Z1 = Hilf1 - Z1;

}

return N1;

}

 int ggT2(int N2, int Z2)

  {

int Hilf2;

while(Z2 != 0)

{

if(N2 < Z2) SWAP2(N2,Z2);

Hilf2 = N2;

N2 = Z2;

Z2 = Hilf2 - Z2;

}

return N2;

}

Computer, C Programmierung, Informatik

Meistgelesene Fragen zum Thema Informatik