In: Computer Science
Python program to simulate breaking a unit-length pencil into two places. Repeat the experiment 100,000 times and determine the average size of the smallest, middle-size, and the largest pieces. Record the estimate of the average sizes in your program
Please use comments to better explain what is happening in the code
Thanks for the question.
Here is the completed code for this problem. Comments are included, go through it, learn how things work and let me know if you have any doubts or if you need anything to change. If you are satisfied with the solution, please rate the answer. Thanks!
===========================================================================
import random
def main():
    pencil_length = 1
    smallest_length_total = 0
    middle_size_length_total = 0
    largest_size_length_total = 0
    experiments = 100000
    # loop 100000 times
    for experiment in range(experiments):
        break_p1 = random.random()  # generate a random number 0 to 1, this is the first part
        remaining_length = pencil_length - break_p1  # pencil that remains
        break_p2 = random.random() * remaining_length  # break the remaining pencil at random point
        first_part = break_p1  # this is the first part length
        second_part = break_p2  # this is the second part length
        third_part = remaining_length - break_p2  # this is the third part length
        lengths = [first_part, second_part, third_part]  # to quick arrange the lengths in ascending order
        lengths.sort()  # sort the lengths in ascending order
        smallest_length_total += lengths[0]  # add the length to the total
        middle_size_length_total += lengths[1]  # add the length to the total
        largest_size_length_total += lengths[2]  # add the length to the total
    average_smallest = smallest_length_total / experiments  # calculate teh average lengths
    average_middle = middle_size_length_total / experiments  # calculate teh average lengths
    average_largest = largest_size_length_total / experiments  # calculate teh average lengths
    print('Average length of smallest pieces:{:.5f}'.format(average_smallest))  # display
    print('Average length of middle pieces  :{:.5f}'.format(average_middle))
    print('Average length of largest pieces :{:.5f}'.format(average_largest))
if __name__ == '__main__':
    main()
======================================================================

