Schlechte Musterlösung.

Die x1x2-Ebene (Untergrundebene) ist die Ebene, die in x1 bzw. x2-Richtung verläuft. Daher ist der Normalenvektor dieser Ebene, also der Vektor, der senkrecht zu dieser Ebene steht, in den Komponenten x1 und x2 0 und in der Komponente x3 beliebig, er soll ja genau senkrecht von der Ebene weg zeigen, aber es ist egal, wie lang er ist, es geht nur um die Richtung. Hier wurde für diesen Normalenvektor einfach der Vektor (0 / 0 / 1) gewählt.

Für die Verwendung des Sinus haben sie auch einfach die Erklärung weggelassen: Du sollst ja den Winkel zwischen der Untergrundebene und Licht berechnen. Da der Untergrund senkrecht zu seinem Normalenvektor verläuft, kannst du anstatt dessen den Winkel zwischen dem Normalenvektor und dem Licht berechnen und diesen von 90° abziehen.
In dieser Grafik kannst du das sehen (Quelle):

Bild zum Beitrag

Hier kannst du nämlich entweder Alpha direkt berechnen (schwierig) oder Beta mit dem Richtungsvektor der Geraden (in deinem Fall einfach irgendein Vektor) und dem Normalenvektor der Ebene berechnen (einfach) und dann von 90° abziehen.

Normalerweise verwendet man für die Winkelberechnung zwischen Vektoren ja den Arcus Cosinus ("cos^-1") von dem Bruch in der Formel, wenn du aber den Winkel von 90° abziehen willst, kannst du anstatt dessen auch den Arcus Sinus ("sin^-1") verwenden. (bzw. den Sinus auf der anderen Seite der Gleichung, wie sie es hier gemacht haben)

...zur Antwort

Der Fehler in der Lösung unten ist, dass es ja auch Überschneidungen zwischen den beiden Bedingungen gibt.

Du kannst die Wahrscheinlichkeiten für die beiden Ereignisse nicht einfach addieren, weil es ja auch sein kann, dass für ein Ergebnis beides zutrifft, trotzdem soll es aber nur ein Mal gezählt werden.

Das ist in dem Tafelbild oben rechts erklärt: Die Ergebnisse (4; W) und (6; W) erfüllen beide Ereignisse, aber sollen dennoch nicht doppelt gezählt werden.

Der Name "Additionssatz" ist verwirrend, da du nach dem Addieren noch die Größe der Schnittmenge, also die Anzahl der doppelten Ergebnisse, abziehen musst.

...zur Antwort

Java Beispiel:

public boolean beinhaltetString(String[] array, String gesucht) {
   for (int i = 0; i < array.length; i++) {
      if (array[i].equals(gesucht)) {
         return true;
      }
   }
   return false;
}

Dieser Algorithmus verwendet eine Iteration, um für jeden String in dem String Array zu überprüfen, ob er der gesuchte String ist. In der Iteration wird die Variable i von 0 (dem Index des ersten Strings im Array) immer weiter um 1 hochgezählt (i++). Die Iteration wiederholt den Code, der in den geschweiften Klammern steht, so oft, wie i noch nicht der Anzahl der Strings im Array entspricht (i < array.length). Sobald die Anzahl der Strings erreicht ist, ist die Iteration vorbei, da es keine weiteren Strings zu überprüfen gibt. Eine Iteration wiederholt also Code für verschiedene Variablen, in diesem Fall die Indizes der Strings im Array.

Es soll aber nur dann true zurückgegeben werden, wenn es einen String gibt, der dem gesuchten String entspricht. Daher wird eine if-Bedingung verwendet. Hier kann das Programm verschiedene Dinge tun: Sollte der in der aktuellen Iteration überprüfte String dem gesuchten String entsprechen, wird true zurückgegeben, sonst passiert nichts. Eine Bedingung kann also, je nachdem, ob eine Abfrage true oder false ist, verschiedene Dinge tun. Das ist im Kontext von Algorithmen wahrscheinlich mit "Alternation" gemeint.

Eine Sequenz gibt es dann, wenn verschiedene Anweisungen in einem Algorithmus nacheinander ausgeführt werden. Da ist häufig das Ergebnis der vorherigen Anweisung für die nächte Anweisung von Bedeutung. Wenn du beispielsweise den Anfangsbuchstaben des Namens einer Person herausfinden möchtest, findest du erst den Namen dieser Person heraus und nimmst von diesem String dann das erste Zeichen. In dem Beispiel-Algorithmus gibt es eine Sequenz, da zuerst alle Strings auf das gesuchte Element überprüft werden und dann, also wenn das gesuchte Element nicht gefunden wurde, sonst wäre der Algorithmus ja wegen return true; abgebrochen, gibt der Algorithmus false zurück. (return false;)

...zur Antwort

Die Entitätsmenge "Listen" hat eine 1-zu-n Beziehung zur Entitätsmenge "Medien", jede Liste kann also beliebig viele Medien enthalten, während ein Medium immer genau einer (oder auch keiner, wegen der 0 bei der Verbindungslinie) Liste zugeordnet ist.

Wenn du dieses ER-Modell (entity relationship model) jetzt in ein relationales Modell umwandeln möchtest (ich denke mal, das möchtest du?), um es für eine Datenbank zu verwenden, um darin Daten zu speichern, musst du die Schritte zur Umwandlung befolgen.

Dabei wird ja unter anderem die 1-zu-n Beziehung zu einem Fremdschlüssel-Verweis von Medien auf Listen umgewandelt, also fügst du einfach einen Medium-Datensatz hinzu und schreibst in die Beziehungsspalte (wahrscheinlich "liste") den Primärschlüssel des Liste-Datensatzes, zu dem dein Medium gehört, ein. Das Hinzufügen geschieht also durch einen Verweis im Medium auf den Primärschlüssel von Listen.

...zur Antwort