Hinweis auf die DSGVO: Auf unserer Seite werden keine Dritt-Anbieter-Cookies verwendet und nur Daten erfasst, welche für das Minimum an Board-Funktionalität notwendig sind.
Bevor Sie sich registrieren oder das Board verwenden, lesen Sie bitte zusätzlich die DSGVO-Erklärung, welche in der Navigationsleiste verlinkt ist.

Kurzfassung der unserer Meinung nach wichtigsten DSGVO-Punkte:
Es kann vorkommen, dass Benutzer eigenverantwortlich Videos oder sonstige Medien in ihren Beiträgen verlinken, welche beim Aufruf der Forenseite als Teil der Seite samt zugehörigem Material mitgeladen werden. Sollten Sie dies nicht wünschen, verwenden Sie beim Benutzen des Forums einen Blocker wie z.B. uMatrix, welcher das Laden von Inhaltsblöcken von Fremd-URLs effektiv unterbinden kann.
Wir blenden keine Werbung ein und schränken die Inhalte in keinster Weise bei Benutzung von Addblockern ein. Dadurch ist die Grundfunktionalität des Forums auch bei vollständigem Blockieren von Drittanbieter-Inhalten stets gegeben.

Cookies werden unsererseits nur verwendet um das Einloggen des Benutzers für die Dauer der Forenbenutzung zu speichern. Es steht dem Benutzer frei die Option 'Angemeldet bleiben' zu verwenden, damit der Cookie dauerhaft gespeichert bleibt und beim nächsten Besuch kein erneutes Einloggen mehr notwendig ist.
EMail-Adressen werden für Kontakt bei wichtigen Mitteilungen und zur Widerherstellung des Passwortes verwendet. Die verwendeten IPs können von uns ohne externe Hilfsmittel mit keiner realen Person in Verbindung gebracht werden und werden nach spätestens 7 Tagen gelöscht. Diese IPs werden höchstens verwendet um Neuanmeldungen unerwünschter oder gesperrter Nutzer zu identfizieren und zu unterbinden. Wir behalten uns daher vor bei Verdacht, die Frist für die IP-Löschung auf maximal 14 Tage zu verlängern.
Unsere Webseite läuft auf einem virtuellen Linux-Server, welcher von einem externen Anbieter gehostet wird. Etwaige Verstöße der DSGVO-Auflagen seitens dieses deutschen Hosters können wir nicht feststellen und somit auch nicht verfolgen.
Wir halten Backups unserer Datenbanken, welche in regelmäßigen Abständen als Schutz vor Katastrophen, Hackerangriffen und sonstigen Ausfällen erstellt werden. Sollte ein Nutzer die Löschung seiner Daten wünschen, betrachten wir es als Unzumutbar die Backups auch von den Daten zu befreien, da es sich hierbei um eine mehrtägiges Unterfangen handelt - dies ist für eine Einzelperson beim Betrieb eines privaten Forums nicht zumutbar möglich ohne das Backup komplett zu löschen.
Sollten Sie etwas gegen die dauerhafte anonyme Speicherung ihrer EMail-Adresse, ihres Pseudonyms und ihrer Beiträge in einem Backup haben, sehen Sie von der Registrierung in diesem Forum ab. Für Mitglieder, welche vor dem 25.05.2018 registriert waren steht jedoch das Recht im Raum, eine Löschung der Datenbank-Backups zu beantragen.



Wenn dies Ihr erster Besuch hier ist, lesen Sie bitte zunächst die FAQs sowie die wesentlichen Regeln zur Benutzung des Forums.
Um an den Diskussionen teilnehmen zu können, müssen Sie sich zunächst registrieren.

Der logarithmische Bierkeller

Mathematische Fragestellungen
Antworten
Benutzeravatar
tomS
Ehrenmitglied
Ehrenmitglied
Beiträge: 10670
Registriert: 19. Nov 2007, 20:29

Der logarithmische Bierkeller

Beitrag von tomS » 2. Okt 2009, 13:41

Der logarithmische Bierkeller

Nachdem ich aus Franken, der Gegend mit der nachweislich höchsten Brauereidichte der Welt, komme, hier ebenfalls eine Matheaufgabe (Vorsicht: schwierig!)

Franz und Georg sind auf einem Bierkeller (in Franken geht man auf den Bierkeller, nicht in den Biergarten: http://www.bierkeller.de/). Franz geht, um sich eine Maß zu holen und dem Georg ein Seidla (das ist ein halber Liter :-) mitzubringen, weil der nicht so viel verträgt. Dann entscheidet sich Georg aber um und ruft Franz hinterher, dass er lieber eine Radlermaß haben will. Nun ist aber die Maß Bier schon eingeschenkt und Franz sagt, er möchte erst die Hälfte austrinken und sich dann mit Limo wieder nachschenken lassen. Die halbe Bier müsste dann der Georg zahlen.

Nun fängt der Franz zu überlegen an: wenn er z.B. erst ein Viertel austrinkt und sich dann mit Limo nachschenken lässt, dann hat er ja ein Mischungsverhältnis von 3/4 zu 1/4. Wenn er dann wieder ein Viertel trinkt und sich nachschenken lässt, ist er immer noch nicht bei einem Verhältnis von 1/2 zu 1/2 angelangt, d.h. er könnte noch mal trinken und hätte insgesamt mehr als eine halben Liter getrunken (was ja wieder der Georg zahlen müsste).

Jetzt kommt der Franz richtig ins Schwitzen, weil er merkt, dass da Optimierungspotential drin liegt, er aber merkt, dass er das mit „einfach mal so schnell ausprobieren“ nicht hinkriegt. Damit sind wir bei der Aufgabenstellung:
1) Franz möchte mehrfach trinken und sich jedes Mal mit Limo wieder auf einen Lieter nachschenken lassen
2) Franz wird mit dem Trinken aufhören, sobald nach dem Nachschenken mit Limo das Mengenverhältnis 1/2 zu 1/2 erreicht ist.
3) Franz darf nie zu viel trinken, denn es wird immer nur mit Limo und nie mit Bier aufgefüllt; d.h.er darf das Verhältnis 1/2 zu 1/2 nie unterschreiten
4) wie oft und wie viel muss Franz jedes Mal trinken, um die insgesamt getrunkene Menge zu maximieren? und wie groß ist diese Menge?

Viel Spaß

:beer:
Gruß
Tom

Der Wert eines Dialogs hängt vor allem von der Vielfalt der konkurrierenden Meinungen ab.
Sir Karl R. Popper

Benutzeravatar
gradient
wohnt hier!
wohnt hier!
Beiträge: 417
Registriert: 3. Nov 2006, 09:25

Re: Der logarithmische Bierkeller

Beitrag von gradient » 2. Okt 2009, 14:51

Hallo Tom,

so eine ähnliche Idee hatte ich mir auch mal überlegt, allerdings nichts zum Schreiben parat gehabt. Da hatte ich vermutet, dass es auf geometrische Reihe hinauslaufen würde, aber jetzt habe ich es überprüft, und bin zumindest erfreut, dass Logarithmen vorkommen.
Interessanterweise ist meine Funktion streng monoton fallend und hat so keinen Extremwert.
Das Ergebnis: Es sei die Menge, die er jeweils trinkt, d.h. er füllt danach immer Liter Limo nach. Dann darf er mal Liter trinken. Um auf 0,5 Liter Bier zu kommen, muss er beim letzten Mal Liter trinken.
Ich komme so auf das Ergebnis, dass er insgesamt umso mehr trinken darf, je kleiner x ist. Bei x=0,1 dürften es insgesamt 0,65916 Liter sein. An 1 Liter wird er in der Realität nie herankommen.

Keine Ahnung, ob das stimmt, ist zur Zeit schwer, meinen Übermüdungszustand loszuwerden...

Beste Grüße aus Regensburg (m.W. größe Kneipendichte in Deutschland^^ - was aber nichts mit der Müdigkeit zu tun hat! ),
Patrick

Benutzeravatar
tomS
Ehrenmitglied
Ehrenmitglied
Beiträge: 10670
Registriert: 19. Nov 2007, 20:29

Re: Der logarithmische Bierkeller

Beitrag von tomS » 2. Okt 2009, 15:25

Kleine Ergänzung: es ist nicht gesagt, dass er jedesmal gleich viel trinken wird!
Gruß
Tom

Der Wert eines Dialogs hängt vor allem von der Vielfalt der konkurrierenden Meinungen ab.
Sir Karl R. Popper

Benutzeravatar
tomS
Ehrenmitglied
Ehrenmitglied
Beiträge: 10670
Registriert: 19. Nov 2007, 20:29

Re: Der logarithmische Bierkeller

Beitrag von tomS » 4. Okt 2009, 10:27

Also ich habe drei Lösungsansätze:
Sichtwort Variationsrechnung mit Nebenbedingung: man betrachte N Schlucke 1..N; man betrachte dabei immer den zu trinkenden Bruchteil; man bestimme die Gesamtmenge X in Abhängigkeit der Schluckgröße; man führe einen Lagrangemultiplikator ein, der dafür sorgt, dass der Anteil Bier zuletzt genau 1/2 beträgt.
Sichtwort kontinuierlicher Flüssigkeitsstrom: man betrachte die zwei Flüssigkeitsströumungen in das Glas hinein (ausschließlich Limo) und aus dem Glas hinaus (Limo-Bier-Gemisch; optimale Durchmischung vorausgesetzt, d.h. die herausströmende Flüssigkeit enthält das selbe Limo-Bier-Verhältnis wie es zu diesem Zeitpunkt im Glas vorhanden ist) und betrachte das Integral über die Zeit.
Sichtwort Computersimulation: man würfle in jedem Schritt eine Zufallszahl, die so beschaffen ist, dass das Limo-Bier-Gemisch auf nie mehr als 1/2 für den Limoanteil führt; man bestimme die Gesamtmenge aus den einzelne Zufallszahlen; man bestimme über viele Durchläufe den Bestwert für die Gesamtmengen.

Für den zweiten Ansatz ist zunächst nicht klar, dass er auf die korrekte Lösung führt. Die Lösung des ersten Ansatzes zeigt aber, dass man im Grenzfall unendlich vieler unendlich kleiner Schlucke das beste Ergebnis erzielt.
Gruß
Tom

Der Wert eines Dialogs hängt vor allem von der Vielfalt der konkurrierenden Meinungen ab.
Sir Karl R. Popper

Benutzeravatar
tomS
Ehrenmitglied
Ehrenmitglied
Beiträge: 10670
Registriert: 19. Nov 2007, 20:29

Re: Der logarithmische Bierkeller

Beitrag von tomS » 4. Okt 2009, 19:05

Wow! Magst du deinen Rechenweg hier reinstellen? Du warst echt fix!
Gruß
Tom

Der Wert eines Dialogs hängt vor allem von der Vielfalt der konkurrierenden Meinungen ab.
Sir Karl R. Popper

Benutzeravatar
tomS
Ehrenmitglied
Ehrenmitglied
Beiträge: 10670
Registriert: 19. Nov 2007, 20:29

Re: Der logarithmische Bierkeller

Beitrag von tomS » 5. Okt 2009, 09:35

Ja, so hab' ich mir das auch zusammengereimt.

Eine Frage bleibt noch: wie folgerst du, dass es sinnvoll ist, in jedem Schritt den gleichen Bruchteil x zu trinken? Grundsätzlich könntest du auch bei jedem Trinkvorgang n eine andere Menge x[down]n[/down] zulassen.
Gruß
Tom

Der Wert eines Dialogs hängt vor allem von der Vielfalt der konkurrierenden Meinungen ab.
Sir Karl R. Popper

Benutzeravatar
tomS
Ehrenmitglied
Ehrenmitglied
Beiträge: 10670
Registriert: 19. Nov 2007, 20:29

Re: Der logarithmische Bierkeller

Beitrag von tomS » 5. Okt 2009, 14:04

Ja, auch da hast du recht. Ich habe das mit Variationsrechnung mit Nebenbedingung (Lagrangemultiplikator) ausgerechnet. Stimmt genau mit deinem Ergebnis überein.Ich werde demnächst die drei genannten Lösungen hier reinstellen.
Gruß
Tom

Der Wert eines Dialogs hängt vor allem von der Vielfalt der konkurrierenden Meinungen ab.
Sir Karl R. Popper

Benutzeravatar
tomS
Ehrenmitglied
Ehrenmitglied
Beiträge: 10670
Registriert: 19. Nov 2007, 20:29

Re: Der logarithmische Bierkeller

Beitrag von tomS » 5. Okt 2009, 16:56

Hier zunächst mal mein C++ Programm

Code: Alles auswählen

// log_beer.cpp : Defines the entry point for the console application.
//

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>



const unsigned i_max    = 1000001;                  // granularity of random numbers

const unsigned run_max  = 1000000;                  // max. number of runs for sampling
const unsigned step_max =    1000;                  // max. steps per sample run



// generate a random number in [0, 1]
inline double random( double a, double b )
{
    if ( a >= b )
        return 1.0;
    else
        return a + (b - a) * ( double(rand() % i_max) / double(i_max) );
}



// execute one step
inline void exec( double & B, double & L, double & X, bool last_exec = false )
{
    double x_max = 1.0 - 1.0 / (2.0 * B);           // max. quantity of liquid to be consumed in actual step
                                                    // must respect the constraint B_new >= 1/2 

    double x;

    if ( last_exec == false )
           x = random( 0, x_max );                  // random actual quantity of liquid consumed in actual step
    else
           x = x_max;                               // maximal - " -


    B = (1.0 - x) * B,                              // reduce quantity of beer by fraction x
    L = (1.0 - x) * L;                              // reduce quantity of lemonade by fraction x

    double d = 1.0 - (B + L);                       // max. quantity of lemonade to be refilled
           
    X += x;                                         // increase total quantity of consumed liquid
    L += d;                                         // refill lemonade

    return;
}



// simple sampling algorithm
int main(int argc, char* argv[])
{
    srand( (unsigned)time( NULL ) );

    double X_max = 0.0;

    // several runs to find best sample
    for ( int run=0; run<run_max; run++ )
    {
        double B = 1.0,                             // initial quantity of beer
               L = 0.0,                             // initial quantity of lemonade
               X = 0.0;                             // initial quantity of consumed liquid        

        // several steps for each sample
        for ( int step=0; step<step_max; step++ )
            exec( B, L, X, false );                 // random x for each step
        exec( B, L, X, true );                      // maximum x for final step

        // check if new max X
        if ( X > X_max )    
        {
            X_max = X;
            printf( "%ld: %lf\n", run, X_max );
        }
    }
    return 0;
}
sowie ein typisches Ergebnis:

Code: Alles auswählen

0: 0.691085
3: 0.691222
112: 0.691245
252: 0.691273
1456: 0.691275
1799: 0.691276
6153: 0.691315
10888: 0.691336
11957: 0.691337
12030: 0.691359
139275: 0.691360
196635: 0.691375
266718: 0.691424
Gruß
Tom

Der Wert eines Dialogs hängt vor allem von der Vielfalt der konkurrierenden Meinungen ab.
Sir Karl R. Popper

Benutzeravatar
gradient
wohnt hier!
wohnt hier!
Beiträge: 417
Registriert: 3. Nov 2006, 09:25

Re: Der logarithmische Bierkeller

Beitrag von gradient » 5. Okt 2009, 20:11

So wie tensor hatte ich auch meinen Term hergeleitet. Nur den Grenzwert hatte ich vergeigt, obwohl ich auch nach der Regel von de l'Hospital gearbeitet habe, nur hatte ich dann irgendwann den Faktor ln2 vergessen hinzuschreiben, und dann ist 1 rausgekommen...
Dass er immer die gleiche Menge trinken muss, war mir erstmal intuitiv klar, hätte es aber auf Anhieb nicht gut begründen können wie tensor.

Und dein Programm zeigt, dass es sich lohnt, Probleme mathematisch-analytisch anzugehen, um den Arbeitsaufwand zu minimieren. :wink:

Ich bin auf die anderen Lösungsansätze gespannt, v.a. auf den Zweiten.

Benutzeravatar
tomS
Ehrenmitglied
Ehrenmitglied
Beiträge: 10670
Registriert: 19. Nov 2007, 20:29

Re: Der logarithmische Bierkeller

Beitrag von tomS » 5. Okt 2009, 22:54

Also zunächst mal ein Lösungsansatz mit Variationsrechnung.

Ich betrachte die im n-ten Schluck getrunkene Menge x[down]n[/down], die Menge Bier B[down]n[/down] und Limo L[down]n[/down] nach dem n-ten Schluck sowie die Gesamtmenge X und B nach N Schlucken. X ist zu maximieren, B muss zuletzt den Wert 1/2 haben. Dazu führe ich die Größe



ein.

Für X und B gilt





Differentation nach dem Lagrangemultiplikator liefert die notwendige Gleichung



Differentation nach x[down]n[/down] und Einsetzen des Ergebnisses für B liefert die Gleichungen



Da die letzte Gleichung für alle n erfüllt sein muss, folgt sofort dass x[down]n[/down] = x für alle n identisch sein muss.

Damit ist



Wegen B = 1/2 kann man aber nun den Lagrangemultiplikator eliminieren und erhält schließlich





Zur Vereinfachung ersetzt man N durch die Variable 1/z



und bestimmt das Maximum der Funktion X(z). DIeses liegt bei z=0, also für N = unendlich viele Schlucke!

Damit ist der letzte Schritt die Berechnung des Grenzwertes X(0). Man erhält

Gruß
Tom

Der Wert eines Dialogs hängt vor allem von der Vielfalt der konkurrierenden Meinungen ab.
Sir Karl R. Popper

Benutzeravatar
tomS
Ehrenmitglied
Ehrenmitglied
Beiträge: 10670
Registriert: 19. Nov 2007, 20:29

Re: Der logarithmische Bierkeller

Beitrag von tomS » 5. Okt 2009, 23:38

Der andere Lösungsansatz ist komplizierter. Außerdem führt er über die Annahme, dass kontinuierlich getrunken wird.

Ich betrachte die Gesamt-Biermenge B(t) sowie die Gesamt-Limomenge L(t). Außerdem seien mit dem Index + bzw. - die nachgefüllte bzw. die getrunkene Menge je Zeit bezeichnet, d.h.





Für die Zeitableitungen führe ich neue Funktionen ein:





Dabei ist berücksichtigt, dass B(t) nur abnimmt,. während L(t) einen zunehmenden Anteil durch das Nachfüllen sowie einen abnehmenden Anteil durch das Trinken hat.

Für die getrunkene Menge gilt dann



Ich setze nun die Annahme der optimalen Durchmischung ein, d.h. das Verhältnis von Bier zu Limo ist im jeweils getrunkenen Anteil identisch dem Verhältnis im Glas



Damit kann man die getrunkene Menge Limo eliminieren:



Dies setze ich in das obige Integral ein und forme den Integranden wie folgt um:



Damit gilt



Der letzte Term B+L ist jeweils die Gesamtmenge an Flüssigkeit im Glas. Ich spare mir hier den Beweis, dass das Integral den maximalen Wert annimmt, wenn ich B+L immer gleich Eins setze. Intuitiv ist das klar; es entspricht der Vorgehensweise, nach jedem Schluck wieder vollzuschenken. D.h. aber mit B+L = 1 bin ich schon fertig!



Nun setze ich B(t) = 1/2 und B(0) = 1 ein und erhalte wieder



Zum Beweis, dass L+B = 1 tatsächlich das Integral maximiert: Man setzt dazu B+L = 1-D und zeigt, dass das Integral für D=0 den maximalen Wert hat. D entspricht dabei der Menge, die auf Eins also zum vollen Glas jeweils fehlt. Man kann das resultierende Integral so umformen, dass gilt



Führt man nun eine Variablensubstituation von s nach B(s) durch, so erhält man



Die Variablensubstituation ist erlaubt, da B(s) eine streng monitone Funktion ist. Das letzte Integral ist aber sicher strikt positiv, da sowohl B als auch D positiv sind. Maximales X erhält man für minimales D, also D=0.
Gruß
Tom

Der Wert eines Dialogs hängt vor allem von der Vielfalt der konkurrierenden Meinungen ab.
Sir Karl R. Popper

Benutzeravatar
kostja
erkundet das Forum
erkundet das Forum
Beiträge: 55
Registriert: 31. Jul 2009, 11:25

Re: Der logarithmische Bierkeller

Beitrag von kostja » 18. Jan 2010, 08:26

Wenn ich Franz wäre, würde ich mit dem ersten Schluck 1/2 L Bier trinken und dann nachschenken lassen. Denn sonst müsste ich das gepanschte Zeug saufen müssen. :mrgreen:

Nette Aufgabe :well:

Grüße
Konstantin

Benutzeravatar
tomS
Ehrenmitglied
Ehrenmitglied
Beiträge: 10670
Registriert: 19. Nov 2007, 20:29

Re: Der logarithmische Bierkeller

Beitrag von tomS » 18. Jan 2010, 08:42

Meinst du, das ist auch was für die Knobelecke auf dem Matheplaneten?
Gruß
Tom

Der Wert eines Dialogs hängt vor allem von der Vielfalt der konkurrierenden Meinungen ab.
Sir Karl R. Popper

Benutzeravatar
kostja
erkundet das Forum
erkundet das Forum
Beiträge: 55
Registriert: 31. Jul 2009, 11:25

Re: Der logarithmische Bierkeller

Beitrag von kostja » 18. Jan 2010, 09:30

Ich weiß nicht. Ich lese nicht viel in der Knobelecke.

Antworten