Übungen / Aufgaben zu Ruby

0 Lösungen
Geburtstags-Paradoxon
Fortgeschrittener - Ruby von JKooP - 24.10.2020 um 18:45 Uhr
Du feierst eine Geburtstagsparty. Nach und nach kommen immer mehr Gäste.
Während des Wartens stellst du dir die Frage, wie viele der anwesenden Personen ebenfalls heute Geburtstag haben könnten.

Schreibe eine Methode/Funktion, die einen Wert zurückliefert, ab wie vielen Gästen die Wahrscheinlich bei größer 50% liegt, dass mindestens noch ein Gast am gleichen Tag Geburtstag hat.

Bedingungen:
- nur der Tag des Jahres, nicht zusätzlich das Geburtsjahr sollen übereinstimmen
- das Jahr hat konstant 365 Tage
- saisonal bedingte Geburtenraten sollen nicht betrachtet werden
0 Lösungen
Primzahlzwillinge (p2 – p1 = 2)
Anfänger - Ruby von JKooP - 13.10.2020 um 08:52 Uhr
Ein Primzahlzwilling ist ein Paar aus Primzahlen, deren Abstand 2 ist.

Beispiele:

(3, 5), (5, 7), (11, 13), …, (569, 571), …

Schreibe eine Funktion/Methode, die alle Primzahlpaare kleiner 2000 ausgibt.

Viel Spaß
0 Lösungen
Goldbachsche Vermutung (binär)
Fortgeschrittener - Ruby von JKooP - 13.10.2020 um 08:32 Uhr
Die Goldbachsche Vermutung besagt, dass jede gerade Zahl größer 2 die Summe zweier Primzahlen ist.

1. Schreibe eine Funktion/Methode, die jeweils ein mögliches Primzahlenpaar bis zur Zahl 1000 ausgibt.

Beispiele:

4 = 2 + 2 -> (2, 2)
6 = 3 + 3 -> (3, 3)
8 = 3 + 5 -> (3, 5)

Duplikate durch Vertauschung wie z.B. (3, 5) -> (5, 3) sollen verhindert werden.

2. Schreibe eine Funktion/Methode, die alle mögliche Primzahlenpaare bis zur Zahl 1000 ausgibt.

Beispiele:

10 = 3 + 7 = 5 + 5 -> [ (3, 7), (5, 3) ]
14 = 3 + 11 = 7 + 7 -> [ (3, 11), (7, 7) ]

Viel Spaß
0 Lösungen
Ranking von Punktzahlen
Anfänger - Ruby von JKooP - 04.10.2020 um 13:02 Uhr
Bei einer Sportveranstaltung wurden die erreichten Punkte in eine Punkteliste überführt.
Jetzt gilt es herauszufinden, wer die meisten und wer die wenigsten Punkte in der Liste hat, um daraus ein sogenanntes Ranking zu erstellen.

Punkteliste = [14, 11, 19, 7, 14, 8, 5]

Ranking1 = [2, 3, 1, 5, 2, 4, 6]

Da es bei Sportveranstaltungen bei Vergabe von zwei 2. Plätzen oft keinen 3. Platz gibt, sähe so ein Ranking folgendermaßen aus:

Ranking2 = [2, 4, 1, 6, 2, 5, 7]

Schreibe eine Methode/Funktion, die sowohl das 1. als auch das 2. Ranking ausgibt.

Viel Spaß
0 Lösungen
Spannung, Stromstärke, Widerstand
Anfänger - Ruby von JKooP - 04.10.2020 um 12:43 Uhr
Schreibe eine Methode/Funktion, die je nach Eingabe von 2 Werten den fehlenden Wert ermittelt.
Die möglichen einzugebenden Werte sind Spannung (U [Volt]), Widerstand (R [Ohm]) bzw. Stromstärke (I [Ampere]).
Der fehlende Wert kann null/nothing oder jedes andere beliebige Zeichen sein.
Die Formel zur Berechnung lautet: U = R * I

Beispiel:

U := 270.0
R := null
I := 3.0

R = I / U = 270 / 3 = 90.0 Ohm

Viel Spaß
0 Lösungen
Differenz(en) von Eingabewerten
Fortgeschrittener - Ruby von JKooP - 04.10.2020 um 12:26 Uhr
Schreibe eine Methode/Funktion, die die maximale bzw. minimale Differenz von Eingabewerten ermittelt.

z.B. f(3, -2, 18, -1, 50)

Min: 1, da Absolut(-2 - -1) = 1
Max: 52, da Absolut(50 - -2) = 52

Viel Spaß
0 Lösungen
Hitzeindex (gefühlte Temperatur)
Anfänger - Ruby von JKooP - 04.10.2020 um 12:08 Uhr
Die auf dem Thermometer, vor allem im Sommer, angezeigt Temperatur stimmt häufig nicht mit der gefühlten Temperatur überein. Denn je feuchter die Luft, desto wärmer nehmen wir die Temperatur wahr. Deshalb wurde der Hitzeindex (HI) eingeführt, der generell für Temperaturen ab 27°C und einer relativen Luftfeuchte von mehr als 40% angewendet wird.

Schreibe eine Methode/Funktion, die Temperatur (t) und Luftfeuchte (h) entgegennimmt und den Hitzeindex (hi) ausgibt.

hi = c1 + c2*t + c3*h +
c4*t*h + c5*t*t + c6*h*h +
c7*t*t*h + c8*t*h*h +
c9*t*t*h*h


c1 = -8.784695,
c2 = 1.61139411,
c3 = 2.338549,
c4 = -0.14611605,
c5 = -1.2308094e-2,
c6 = -1.6424828e-2,
c7 = 2.211732e-3,
c8 = 7.2546e-4,
c9 = -3.582e-6

Viel Spaß
0 Lösungen
Teilersumme natürlicher Zahlen
Anfänger - Ruby von JKooP - 04.10.2020 um 11:49 Uhr
Schreibe eine Methode/Funktion, mit der es möglich ist zu prüfen, ob es sich bei einer natürlichen Zahl um eine defiziente,
vollkommende oder abundante Zahl handelt.
Betrachtet wird die Summe aller Teiler ohne die Zahl selbst.

Beispiel Zahl 80:

1 + 2 + 4 + 5 + 8 + 10 + 20 + 40 = 106 --> abundant, da

Summe kleiner als Zahl --> defizient
Summe gleich Zahl --> vollkommen
Summe größer als Zahl --> abundant

Viel Spaß
0 Lösungen
Die n-te Zahl ermitteln
Fortgeschrittener - Ruby von JKooP - 04.10.2020 um 11:30 Uhr
Man nehme eine Zahl, die beispielsweise mit den Ziffern 245 beginnt.
Nun ist die Frage, welche ist z.B. die 12. Zahl, die ebenfalls mit 245 beginnt?

Lösung: 24500, denn
01. 245
02. 2450
03. 2451

11. 2459
12. 24500

Welche ist die 100. Zahl die mit 245 beginnt?

Variante 1: durch Probieren mittels einer Schleife (leicht)

Versucht man jetzt aber durch Probieren die 13000. Zahl zu ermitteln, kann das schon eine Weile dauern. Vielleicht lässt sich eine logische Folge ableiten?!

Variante 2: Berechnung der Zahl (schwieriger)

Viel Spaß
0 Lösungen
Berechnung von Widerständen
Anfänger - Ruby von JKooP - 04.10.2020 um 10:58 Uhr
Schreibe eine Methode bzw. Funktion, mit der man den Gesamtwiderstand von Parallel- bzw. Reihenschaltungen berechnen kann.
Dabei sollen sowohl die Werte der Einzelwiderstände als auch die Art der Schaltung vom Benutzer erfragt werden.

Variante 1: 2 separate Funktionen: f(float a, float b, … float n)
Variante 2: 1 kombinierte Funktion: f(artDerSchaltung, float a, float b, … float n)

Viel Spaß


0 Lösungen
Zoo mittels einer Factory-Methode
Fortgeschrittener - Ruby von Exception - 12.09.2020 um 16:36 Uhr
Hallo zusammen,

heute erzeugen wir einen Zoo!

Erzeugt hierfür eine Basisklasse (oder Interface) "Animal" und einige Klassen die davon erben (z.B. "Lion", "Penguin", "Crocodile", "Snake").

Als nächsten Schritt wollen wir nun eine Factory-Klasse erzeugen, die sich am "Factory-Method-Pattern" orientiert.
In dieser Klasse soll eine Methode "createAnimal" existieren, die ein "Animal" zurückgibt.
Welches "Animal" zurückgegeben wird überlassen wir vorerst dem reinen Zufall ;)
Daher kann diese Klasse auch "RandomAnimalFactory" genannt werden.

Lasst nun 200 "Animals" in den Zoo einziehen.

Wie ist die Verteilung der "Animals" einer jeden Spezies in unserem Zoo?

Es kann mit der zufälligen Erzeugung zu einem gewissen Ungleichgewicht kommen.
So fühlt sich ein einzelner Pinguin gegen 199 Löwen sicher etwas in der Unterzahl ...

Erstellt nun eine zweite Factory-Klasse "BalancedAnimalFactory".
Diese soll ebenfalls die Methode "createAnimal" enthalten.

(Macht es nun evtl. Sinn sich auch bei den Factory-Klassen über ein Interface gedanken zu machen?)

Diese Factory soll nicht mehr komplett zufällig Tiere erzeugen sondern etwas ausgeglichener.
Die dort vorhandene "createAnimal" Methode soll wie folgt funktionieren:
Angenommen wir haben vier Tier-Klassen ("Lion", "Penguin", "Crocodile", "Snake").
Wird nun ein "Lion" erzeugt, so wird für die nächsten beiden Erzeugungen kein "Lion" mehr erzeugt.

Lasst nun erneut 200 "Animals" einziehen - vielleicht in einen zweiten "Parkabschnitt" (Array)? :)
Muss sich der Pinguin noch immer Sorgen machen?

Viel Spaß!
0 Lösungen
Wochentage einlesen und in einem Array ausgeben
Anfänger - Ruby von Cara - 14.05.2020 um 23:46 Uhr
Schreiben Sie ein Programm, das die Wochentage in einliest und sie in
einem Array (vom Typ string [ ]) ablegt und danach ausgibt.