Python Forum
Using Dictionary to Test Evenness of Distribution Generated by Randint Function
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Using Dictionary to Test Evenness of Distribution Generated by Randint Function
#1
Hi,

This is my second post on any sort of coding website and I'm an absolute beginner at programming. I'm trying to learn Python and am currently about halfway through an introductory book in which the author presents a block of code showing how to test the "evenness" of the randint function in Python using a dictionary (taking the range of numbers from 1 to 10 as an example). I'm having trouble figuring out exactly what is going on in this code. Here it is:

frequency = {}
for i in range(1000):
     num = randint(1, 10)
     if frequency.has_key(num):
          frequency[num] = frequency[num] + 1
          else:
               frequency[num] = 1

print frequency
The output from this code is given in the book as follows:

Output:
{1: 99, 2: 105, 3: 93, 4: 114, 5: 81, 6: 95, 7: 82, 8: 116, 9: 118, 10: 97}
The author writes that "It's not perfectly even, but most statisticians would be happy with our result."

Here is what I think the code is doing:

The first line defines the "frequency" variable as an empty dictionary.
The second and third lines generate a random number between 1 and 10 1,000 times (I think).
The lines after this with the "if ... else" statement have me a bit stumped. It seems to me that the "if frequency.has_key(num)" criterion will always be met, so the resulting frequency of each number will always have 1 added to it. Why? Does this have something to do with the fact that the range function in Python increments by 1 by default? I'm having trouble understanding how the "if ... else" statement helps generate a frequency distribution for numbers 1 to 10.

Also, if I'm correct that the "if frequency.has_key(num)" criterion will always be met, is the "else" statement at the end of the block of code even necessary?

Thanks in advance for any help.
Reply


Messages In This Thread
Using Dictionary to Test Evenness of Distribution Generated by Randint Function - by new_coder_231013 - Feb-21-2021, 04:09 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  distribution fit Glaucio 1 350 Apr-07-2024, 12:30 AM
Last Post: Larz60+
  Weight Distribution 11drk9 11 941 Mar-13-2024, 06:08 AM
Last Post: Pedroski55
  random numbers, randint janeik 2 645 Nov-27-2023, 05:17 PM
Last Post: janeik
  Unexpected output while using random.randint with def terickson2367 1 599 Oct-24-2023, 05:56 AM
Last Post: buran
Information Best distribution method inovermyhead100 0 629 Jul-19-2023, 07:39 AM
Last Post: inovermyhead100
  HOW TO USE C# GENERATED DLL davide_vergnani 2 1,848 Jun-12-2023, 03:35 PM
Last Post: davide_vergnani
  passing dictionary to the function mark588 2 1,071 Dec-19-2022, 07:28 PM
Last Post: deanhystad
  How do I use a whl puython distribution? barryjo 6 1,937 Aug-15-2022, 03:00 AM
Last Post: barryjo
Sad Iterate randint() multiple times when calling a function Jake123 2 2,164 Feb-15-2022, 10:56 PM
Last Post: deanhystad
  How to test and import a model form computer to test accuracy using Sklearn library Anldra12 6 3,290 Jul-03-2021, 10:07 AM
Last Post: Anldra12

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020