Prüfung Algorithmen und Programmierung in C

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Prüfung Algorithmen und Programmierung in C

Beitrag von cloidnerux » Mo Mär 02, 2015 10:06 am

Ich komme auf 7, vorausgesetzt ich habe die Aufgabe verstanden und rechne das richtige :D :lol:

Das will ich sehen :D

Aufgabe etwas anders Formuliert:
Finde das höchste Stockwerk, aus dem man ein Ei fallen lassen kann, ohne das es kaputt geht. Man hat zwei Eier und 100 Stockwerke.
Mit welchem Algorithmus schafft man das in der geringsten Worst-Case Laufzeit?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Prüfung Algorithmen und Programmierung in C

Beitrag von Xin » Mo Mär 02, 2015 10:15 am

Ich komme auf 18 plus die Erkenntnis, dass ich schon ziemlich lange keine Kurvendiskussion mehr gemacht habe. :-D
cloidnerux hat geschrieben:
Ich komme auf 7, vorausgesetzt ich habe die Aufgabe verstanden und rechne das richtige :D :lol:

Das will ich sehen :D
Ich wäre schon begeistert, wenn jemand ein Ei vom Erdgeschoss fallen lässt und es bleibt heil ;-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

canlot
Beiträge: 393
Registriert: Di Mär 08, 2011 11:01 pm
Wohnort: NRW

Re: Prüfung Algorithmen und Programmierung in C

Beitrag von canlot » Mo Mär 02, 2015 11:01 am

Xin hat geschrieben:Ich komme auf 18 plus die Erkenntnis, dass ich schon ziemlich lange keine Kurvendiskussion mehr gemacht habe.
Achso darum gehts :D Dann versteh ich nicht wie ich die Aufgabe rechnen soll :shock: :?
Ich habe die Stockwerke immer durch zwei gerechnet bis ich bei weniger als einem angekommen bin, aber da bräuchte man dann mindestens 7 Eier.
Anscheinend bin ich die Aufgabe völlig falsch angegangen, ich fühle mich dumm :cry: kann mir jemand bitte erklären wie man es rechnet?
Unwissenheit ist ein Segen

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Prüfung Algorithmen und Programmierung in C

Beitrag von cloidnerux » Mo Mär 02, 2015 11:09 am

Anscheinend bin ich die Aufgabe völlig falsch angegangen, ich fühle mich dumm :cry: kann mir jemand bitte erklären wie man es rechnet?
Man hat zwei Grundbedingungen:
Ein Ei wird zerstört, wenn es aus einem bestimmten Stock x oder darüber fallen gelassen wird.
Ein Ei wird nicht zerstört, wenn es aus einem Stock x-1 oder darunter fallen gelassen wird.

Daraus ergeben sich einige Grundgedanken:
Es macht keinen Sinn im stock 100 anzufangen, da es sehr wahrscheinlich ist, dass das Ei zerstört wird und das nächste auch.
Sobald ich ein Stockwerk habe, von dem ich weiß das es >=x ist, brauche ich keine Stockwerke über diesem zu testen.

Der einfachste Weh wäre es also, das Ei aus jedem Stockwerk beginnend bei 1(0 Erdgeschoss?) fallen zu lassen.
Nach n versuchen bist du bei einem Stock angekommen, bei dem es kaputt geht.
Worst-Case dafür: 100,

Eine bessere Möglichkeit wäre es nun, ein Ei erst aus dem 50ten Stock fallen zu lassen. Geht es kaputt, muss der Stock x unterhalb von 50 sein, bleibt es heil >x.
Dann gehst du wieder linear von unten nach oben durch(je nach dem bei 1 oder 50 anfangen).
Worst-Case hier: 50.

Ich hoffe ich konnte dir einen möglichen Ansatz verständlich machen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

canlot
Beiträge: 393
Registriert: Di Mär 08, 2011 11:01 pm
Wohnort: NRW

Re: Prüfung Algorithmen und Programmierung in C

Beitrag von canlot » Mo Mär 02, 2015 11:32 am

cloidnerux hat geschrieben:Eine bessere Möglichkeit wäre es nun, ein Ei erst aus dem 50ten Stock fallen zu lassen. Geht es kaputt, muss der Stock x unterhalb von 50 sein, bleibt es heil >x.
Dann gehst du wieder linear von unten nach oben durch(je nach dem bei 1 oder 50 anfangen).
Worst-Case hier: 50.
Dann lag ich doch gar nicht so falsch, oder?
Ich nehme immer die Hälfte, ich lasse das Ei aus dem 50 Stock fallen, nehmen wir an es geht kaputt.
Dann wieder die Hälfte also 25, das Ei geht auch hier kaputt, wieder die Hälfte also 12,5 das Ei geht auch hier kaputt.
Die Hälfe von 12,5 ist 6,25 das Ei bleibt heile also addiere ich die Hälfte von 6,25 das wären 6,25 + 3,125 = 9,375, Ei geht kaputt, 9,375 - (die Hälfte von 3,125) 1,5625 = 7,8125 Stockwerke.
Das Ei bleibt heile also addiere ich wieder, diesmal die Hälfte von 1,5625 was 0,78125 ist dazu und erhalte 7,8125 + 0,78125 = 8,59375 Stockwerke.
Die worst case Laufzeit-Schritte wären 7.
Unwissenheit ist ein Segen

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Prüfung Algorithmen und Programmierung in C

Beitrag von Xin » Mo Mär 02, 2015 11:42 am

canlot hat geschrieben:Ich nehme immer die Hälfte, ich lasse das Ei aus dem 50 Stock fallen, nehmen wir an es geht kaputt.
Dann wieder die Hälfte also 25, das Ei geht auch hier kaputt, wieder die Hälfte also 12,5 das Ei geht auch hier kaputt.
Welches Ei?
Du hast nur zwei Eier und die sind dann Matsch. ^^

Wer hat eigentlich die Aufgabe gestellt...? Allein die Vorstellung daran zu glauben, dass man ein Ei aus dem 2. Stock werfen könnte und hoffen, dass es dabei nicht zerbricht ist irre und die Antworten wie "Du hast nur zwei Eier und die sind dann Matsch." klingen auch irgendwie nicht komplett jugendfrei.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Prüfung Algorithmen und Programmierung in C

Beitrag von cloidnerux » Mo Mär 02, 2015 11:55 am

Wer hat eigentlich die Aufgabe gestellt...? Allein die Vorstellung daran zu glauben, dass man ein Ei aus dem 2. Stock werfen könnte und hoffen, dass es dabei nicht zerbricht ist irre und die Antworten wie "Du hast nur zwei Eier und die sind dann Matsch." klingen auch irgendwie nicht komplett jugendfrei.
Du und dein Bezug zur realität :D
Dann lag ich doch gar nicht so falsch, oder?
Ich nehme immer die Hälfte, ich lasse das Ei aus dem 50 Stock fallen, nehmen wir an es geht kaputt.
Dann wieder die Hälfte also 25, das Ei geht auch hier kaputt, wieder die Hälfte also 12,5 das Ei geht auch hier kaputt.
Du hast nur zwei Eier, daher machst du das zwei mal, und dann ist vorbei.
Deswegen geht das nicht.

Du musst zwangsweise ab irgendeinem Punkt jedes Stockwerk durchprobieren und zwar von unten nach oben.
Redundanz macht wiederholen unnötig.
quod erat expectandum

canlot
Beiträge: 393
Registriert: Di Mär 08, 2011 11:01 pm
Wohnort: NRW

Re: Prüfung Algorithmen und Programmierung in C

Beitrag von canlot » Mo Mär 02, 2015 12:23 pm

cloidnerux hat geschrieben:Du hast nur zwei Eier, daher machst du das zwei mal, und dann ist vorbei.
Deswegen geht das nicht.
Wenn ich nur zwei Eier hätte und wären es Hühnereier :D würde ich sie essen statt von irgendwo runterschmeißen :lol:
Unwissenheit ist ein Segen

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Prüfung Algorithmen und Programmierung in C

Beitrag von cloidnerux » Mo Mär 02, 2015 1:46 pm

Wenn ich nur zwei Eier hätte und wären es Hühnereier :D würde ich sie essen statt von irgendwo runterschmeißen :lol:
Und der nächste der zu sehr in der Realität lebt. Ich dachte das wäre in Programmierforum hier :lol:
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Prüfung Algorithmen und Programmierung in C

Beitrag von cloidnerux » Di Mär 03, 2015 1:42 pm

Und es kommt keiner auf 14 im Worst-Case?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten