Birthday paradox

S
s3942336 · May 5, 2022 · 2.1K views
Question
hey this is my code for my birthday paradox, why wouldnt it run when i chnage the values, the graph deosnt work mat= zeros(1, 365); N = app.RealisationsEditField.Value; dmax = app.GroupSizeEditField.Value; for k = 2:dmax for d = 1:N birthday = numrandays(k); for i = 1:length(birthday) b = birthday(i); match = find(birthday == b); if length(match) > 1 mat(k) = mat(k) + 1; break end end end end probability = mat/N; L = min(length(x), length(y)); x = 2:dmax; y = probability; plot(app.UIAxes, x(1:L), y(1:L), "Colour", "blue", "Linestyle", "-"); hold on y2 = 1 - exp(-(x.*x)/730); plot(app.UIAxes,(1:L), y2, "Color", "r", "Linestyle", "--"); xlim(app.UIAxes([0 dmax])); ylim(app.UIAxes([0 1]));
Expert Answer
Profile picture of John Williams
John Williams PhD Expert
Answered Nov 20, 2025

In this project we are going to create the Graphical User Interface using the MATLAB App Designer to simulate the birthday scenario or birthday paradox and combining to simulate the scenario of people in a group sharing a birthday, the GUI call two user define function that was create in the last module which is ‘datagen’ function which takes the input as the group size and based on that it will gives the day of the group from 1 to 365 days, 2nd is ‘bmatch’ function which is used to record the match discovery in the dataset generated using the 1st function.

 

MATLAB Code

 

classdef GUI_exported < matlab.apps.AppBase

    % Properties that correspond to app components
    properties (Access = public)
        UIFigure                    matlab.ui.Figure
        ResetButton                 matlab.ui.control.Button
        BirthdayParadoxLabel        matlab.ui.control.Label
        SimulateButton              matlab.ui.control.Button
        GroupSizeSpinner            matlab.ui.control.Spinner
        GroupSizeSpinnerLabel       matlab.ui.control.Label
        NoofSimulationSpinner       matlab.ui.control.Spinner
        NoofSimulationSpinnerLabel  matlab.ui.control.Label
        UIAxes                      matlab.ui.control.UIAxes
    end

    % Callbacks that handle component events
    methods (Access = private)

        % Code that executes after component creation
        function startupFcn(app, event)
            % Turn ON grids at Start
            grid(app.UIAxes,'on')
            % Set Simulation value to 10
            app.NoofSimulationSpinner.Value=10;
            % Set group size to 2
            app.GroupSizeSpinner.Value=2;
        end

 birthday-paradox

 

Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!