goMatlab - Mein MATLAB Forum

Mein MATLAB Forum

 
Login  | Registrieren
Bücher:

Simulink Grundlagen und Beispiele

Fachkräfte:
Softwareentwickler MATLAB/Simulink (w/m)
Erarbeitung von Lösungen im Bereich der Schnittstelle zum Simulink-Modell und der Benutzeroberfläche von TargetLink
dSPACE GmbH - Paderborn

Testingenieur (w/m) Testframework für Simulink-basierte Echtzeitanwendungen
Pflege des MATLAB/Simulink-Testframeworks, Spezifizieren von Testkriterien, Testfällen und Testszenarien
dSPACE GmbH - Paderborn

Testingenieur (w/m) Konfigurationswerkzeuge für Echtzeitsysteme
Einbinden von Simulink®-Simulationsmodellen, Verteilung der Simulationsmodelle auf Multicore- und Multiprozessorsysteme
dSPACE GmbH - Paderborn

Ingenieur modellbasierte Entwicklung/Embedded Programmierung (w/m)
Organisation und Durchführung von Projekten, Koordination und Umsetzung von Entwicklungsaufgaben
dSPACE GmbH - Paderborn

Softwareentwickler AUTOSAR (w/m)
Spezifikation und Implementierung von Import- und Export-Modulen
dSPACE GmbH - Paderborn

weitere Angebote

Partner:




Vermarktungspartner


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, 17: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
Forum-Meister
Forum-Meister

Beiträge: 593
Anmeldedatum: 04.11.11
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 17.01.2012, 17: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: 203
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2012, 16: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
Forum-Meister
Forum-Meister

Beiträge: 593
Anmeldedatum: 04.11.11
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 18.01.2012, 17: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, 20: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: 5343
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ---
     Beitrag Verfasst am: 23.01.2012, 20: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



Options and Permissions
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2012 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.