WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Casinobesuch mit Matlab

 

moruu
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 17.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.01.2012, 16:39     Titel: Casinobesuch mit Matlab
  Antworten mit Zitat      
Folgende Problemstellung:
Nach den europäischen Regeln, auch als französische Regeln bekannt, besteht das Roulette aus den Feldern 0 bis 36. Fällt die Kugel auf die 0 dann bekommt die Bank Ihren Einsatz; außer Sie haben auf eine einfach Chance gesetzt (gerade/ungerade, rot/schwarz, untere/obere Hälfte). In diesem Falle können Sie sich entscheiden, ob die Bank die Hälfte des Einsatzes einzieht, oder ob Sie den Gesamteinsatz liegen lassen (en prison).
Simulieren (Funktion randi) Sie mit MatLab das europäische Roulette im Casino und setzen Sie immer auf ungerade Zahl. Wenn Sie gewinnen, erhalten Sie einen Gewinn in der gleichen Höhe wie ihr Einsatz, wenn sie verlieren, verfällt ihr Einsatz. Bei 0 wenden sie en prison an, d.h., Sie erzielen weder Gewinn noch Verlust.
Als Spielstrategie wenden Sie das Martingale System an, welches folgendermaßen funktioniert:
Sie starten mit einem Grundeinsatz E 0 . Wenn Sie verlieren, verdoppeln Sie im nächsten Spiel Ihren Einsatz. Sobald Sie gewinnen, stecken Sie ihren Gewinn ein und starten erneut mit
dem Grundeinsatz. Spielen Sie solange, bis Sie den 5-fachen Grundeinsatz E end in der Hand haben.
In jedem Schritt soll die Nachricht 'gewonnen', 'verloren' oder 'en prison', der aktuelle Kontostand K (der natürlich bei längerem Verlust auch negativ sein kann) und die Einsätze für das aktuelle und das nächste Spiel ausgegeben werden. Beenden sie die Berechnung, wenn der Kontostand den Wert E end erreicht hat. Am Anfang beträgt der Kontostand E 0 = 10 EUR.
(a) Die Bank gewährt ihnen unbeschränkt Kredit, d.h. sie können einen beliebig negativen Kontostand während des Spiels haben.
(b) Wie ändert sich Ihr Gewinn/Verlust, wenn Sie maximal 100 Euro pro Spiel setzen dürfen?
Simulieren Sie einige hundert bis tausende Casinobesuche. Protokollieren und Visualisieren Sie für (a) und für (b) den erzielten Gewinn/Verlust, die Anzahl der zum Gewinn notwendigen Spiele und den minimalen (negativen) Kontostand während jedes Spieles.
Speichern Sie die erzielten Roulettezahlen für sämtliche Spiele und werten Sie diese bzgl. Gleichverteilung der Zahlen aus.

Kann mir bei dieser Aufgabe jemand helfen oder auch die komplette Lösung geben? Danke im Voraus
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 17.01.2012, 16:47     Titel:
  Antworten mit Zitat      
Zitat:
Kann mir bei dieser Aufgabe jemand helfen oder auch die komplette Lösung geben?

Antwort: ja

wird hir aber niemand machen denke ich. wenn du ansätze hast oder code der nicht richtig läuft poste den hir und wir helfen dir bei der berichtigung. anderfalls wende dich an deinen tutor. der wird dafür bezahlt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Scriptor
Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2012, 15:52     Titel:
  Antworten mit Zitat      
Klar würde das jemand. Kommt halt drauf an wieviel bezahlt wird, dafür ist er im Aufträge Thread.

Wie stellst du dir das Ergebnis vor? Als M-File, als GUI ....

Grüße!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 18.01.2012, 16:21     Titel:
  Antworten mit Zitat      
hatte übersehen das das im aufträge thread ist. mein fehler. entschuldigt vielmals ^^ dachte is wieder eine hausaufgaben anfrage im programmier bereich so wie immer Smile
asche auf mein haupt
grüße winkow
Private Nachricht senden Benutzer-Profile anzeigen
 
moruu
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 17.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2012, 19:03     Titel:
  Antworten mit Zitat      
Code:
clear all;
close all;
clc;

% ######## PLEASE CHOOSE A OR B

%maxbet = inf; % bsp_46a
maxbet = 100; % bsp_46b

% #############################


rounds = 1000;
E_0 = 10;
E_end = 5 * E_0;
roi = zeros(1,rounds);
stat_numbers = zeros(1,37);
stat_maxbet = zeros(1,rounds);
stat_numberofgames = zeros(1,rounds);
stat_minaccount = zeros(1,rounds);
stat_winamount = zeros(1,rounds);

% start simulation
for round = 1:rounds

    % initializations for each round
    playing = 1;
    step = 1;
    E = [];
    E(1) = E_0;
    % TODO bet
    bet = [];
    bet(1) = E_0;
   
    games = 0;

   


    % play round
    while playing == 1

        % new step
        step = step + 1;

        % play step
        number = randi(37,1) - 1;
        stat_numbers(number + 1) = stat_numbers(number + 1) + 1;
        games = games + 1;

        % en prison
        if number == 0
            E(step) = E(step - 1);
            bet(step) = bet(step - 1);
            fprintf('en prison!\t\tcurrent money: %d\t\tcurrent bet: %d\t\tnext bet: %d\n',E(step),bet(step - 1),bet(step));
            continue;
        end

        % win or loose
        if mod(number,2) == 1
            E(step) = E(step - 1) + bet(step - 1);
            bet(step) = E_0;
           
            fprintf('win!\t\tcurrent money: %d\t\tcurrent bet: %d\t\tnext bet: %d\n',E(step),bet(step - 1),bet(step));
        else
            E(step) = E(step - 1) - bet(step - 1);
            bet(step) = bet(step - 1) * 2;
            fprintf('lost!\t\tcurrent money: %d\t\tcurrent bet: %d\t\tnext bet: %d\n',E(step),bet(step - 1),bet(step));
        end

        % check if player has won max amount
        if E(step) >= E_end
            playing = 0;
            disp(['congrats! you have: ', num2str(E(step))]);
        end

        % check if player bets over maxbet
        if bet(step) > maxbet
            fprintf('bet limit reached - end game\n');
            playing = 0;
        end

    end
   
    % statistics
    stat_maxbet(round) = max(bet);
    stat_numberofgames(round) = games;
    stat_minaccount(round) = min(E);
    stat_winamount(round) = E(end) - E_0;
    roi(round) = (E(end) - E_0) / E_0;

end

roi_end = sum(roi)/numel(roi)


subplot(2,2,1);
%hold on;
bar(stat_numbers);
axis([0,36,rounds/10,rounds/10*3]);
title('number occurence');
%hold off;

subplot(2,2,2);
bar(stat_winamount);
axis([1, rounds, min(stat_winamount)-E_0, max(stat_winamount)+E_0]);
title('win amount');

subplot(2,2,3);
bar(stat_numberofgames);
axis([1, rounds, min(stat_numberofgames), max(stat_numberofgames)]);
title('number of games');

subplot(2,2,4);
bar(stat_minaccount);
title('min acount');
axis([1,rounds,min(stat_minaccount),0]);

if maxbet == inf
    print -djpeg 'bsp_46a.jpg';
else
    print -djpeg 'bsp_46b.jpg';
end



sooo habs jetzt selber mal probiert. kann man das noch verbessern? wenn ja bitte helft mir
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.01.2012, 19:59     Titel:
  Antworten mit Zitat      
Hallo,

verbessern nach welchen Kriterien?
Geschwindigkeit? Da kannst du mit dem Profiler selber erst mal sehen, wo die Schwachpunkte sind.
Sind die Ergebnisse wie erwartet? Wenn nicht, inwiefern nicht?
Bitte Code-Umgebung verwenden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.