Modify the script RollDie.py that we provided with this chapter’s examples to simulate rolling two dice. Calculate the sum of the two values. Each die has a value from 1 to 6, so the sum of the values will vary from 2 to 12, with 7 being the most frequent sum, and 2 and 12 the least frequent. The following diagram shows the 36 equally likely possible combinations of the two dice and their corresponding sums: If you roll the dice 36,000 times: • The values 2 and 12 each occur 1/36th (2.778%) of the time, so you should expect about 1000 of each. • The values 3 and 11 each occur 2/36ths (5.556%) of the time, so you should expect about 2000 of each, and so on.

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter5: Control Structures Ii (repetition)
Section: Chapter Questions
Problem 21PE
icon
Related questions
Question
100%

Modify the script RollDie.py that we provided with this chapter’s examples to simulate rolling two dice. Calculate the sum of

the two values. Each die has a value from 1 to 6, so the sum of the values will vary from 2 to 12, with 7 being the most frequent sum, and 2 and 12 the least frequent. The following diagram shows the 36 equally likely possible combinations of the two dice and their corresponding sums:

If you roll the dice 36,000 times:

• The values 2 and 12 each occur 1/36th (2.778%) of the time, so you should expect about 1000 of each.

• The values 3 and 11 each occur 2/36ths (5.556%) of the time, so you should expect about 2000 of each, and so on.

 

 

Use a command-line argument to obtain the number of rolls. Display a bar plot summarizing the roll frequencies. The following screen captures show the final bar plots for sample executions of 360, 36,000 and 36,000,000 rolls. Use the Seaborn barplot function’s optional orient keyword argument to specify a horizontal bar plot.

 

This is the original python code for this assignment

import matplotlib.pyplot as plt
import numpy as np

import random
import seaborn as sns
rolls = [random.randrange(1, 7) for i in range(600)]
values, frequencies = np.unique(rolls, return_counts=True)
title = f'Rolling a Six-Sided Die {len(rolls):,} Times'
sns.set_style("whitegrid") 
axes = sns.barplot(values, frequencies, palette='bright') 
axes.set_title(title) 
axes.set(xlabel='Die Value', ylabel='Frequency') 
axes.set_ylim(top=max(frequencies) * 1.10)
for bar, frequency in zip(axes.patches, frequencies):
 text_x = bar.get_x() + bar.get_width() / 2.0 
 text_y = bar.get_height() 
 text = f'{frequency:,}\n{frequency / len(rolls):.3%}'
 axes.text(text_x, text_y, text, 
 fontsize=11, ha='center', va='bottom')

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 3 images

Blurred answer
Knowledge Booster
Random Class and its operations
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning