Skip to content
Related Articles

Related Articles

Python program to design an unbiased dice throw function
  • Last Updated : 03 Jan, 2021
GeeksforGeeks - Summer Carnival Banner

The task is to write a Python program to generate an unbiased dice throw and give output accordingly.  To perform this we can use various methods present in the python random module. 

Approaches:

  • Using random.choice() method
  • Using random.randrange() method
  • Using random.randint() method
  • Using random.random() method

Method 1: Using random.choice()

The choice() is a method in random module that returns a random item from a list, tuple, or string. This method is designed for the specific purpose of getting a random number from the container and hence is the most common method to achieve this task of getting a random number from a list.

Syntax: random.choice(sequence)



Parameters:  

  • sequence is a mandatory parameter that can be a list, tuple, or string.

Returns: The choice() returns a random item.

Now, as we know that dice has numbers from the range 1-6 inclusive, so we will give [1, 2, 3, 4, 5, 6] as the sequence in the function and function will give an unbiased dice throw as output. Below are the implementations based on the above explanation:

Python3




# Python program to design an unbiased dice throw 
# function
  
# Importing random library
import random
  
# Function to give an unbiased dice throw
def dice_throw():
      
    # Declaring the sequence
    sequence = [1, 2, 3, 4, 5, 6]
      
    # Printing the random result
    print(random.choice(sequence))
  
# Driver Code
# Calling the function
dice_throw()
  
# Calling the function
dice_throw()
  
# Calling the function
dice_throw()

Output:

3
1
4

Method 2: Using random.randrange()

This method is used to generate a random number in a range, for lists, we can specify the range to be 0 to its length, and get the index, and then corresponding value. This also gives the option of getting even placed elements or elements at the index of certain multiple.

Syntax : random.randrange(start(opt), stop, step(opt))

Parameters :



  • start(opt) : Number consideration for generation starts from this, default value is 0. This parameter is optional.
  • stop : Numbers less than this are generated. This parameter is mandatory.
  • step(opt) : Step point of range, this won’t be included. This is optional. Default value is 1.

Return Value : This function generated the numbers in the sequence start-stop skipping step.

Now, as we know that dice has numbers from the range 1-6 inclusive, so we will give [1, 2, 3, 4, 5, 6] as the sequence in the function and then use randrange() to find a random index and thus function will give an unbiased dice throw as output. Below are the implementations based on the above explanation:

Python3




# Python program to design an unbiased dice throw 
# function
  
# Importing random library
import random
  
# Function to give an unbiased dice throw
def dice_throw():
      
    # Declaring the sequence
    sequence = [1, 2, 3, 4, 5, 6]
      
    # using random.randrange() to  
    # get a random index number  
    rand_idx = random.randrange(len(sequence))
  
    # Printing the random result
    print(sequence[rand_idx])
  
# Driver Code
# Calling the function
dice_throw()
  
# Calling the function
dice_throw()
  
# Calling the function
dice_throw()

Output:

3
1
3

Method 3: Using random.randint()

Yet another method to generate the random number, this also can be used to generate any number in a range and then using that number index, we can find the value at corresponding index, just like the above-mentioned technique. But it differs by the fact that it required 2 mandatory arguments for range.

Syntax : randint(start, end)

Parameters :

  • (start, end) : Both of them must be integer type values.

Returns : A random integer in range [start, end] including the end points.

Now, as we know that dice has numbers from the range 1-6 inclusive, so we will give [1, 2, 3, 4, 5, 6] as the sequence in the function and then use randint() to find a random index and thus function will give an unbiased dice throw as output. Below are the implementations based on the above explanation:

Python3




# Python program to design an unbiased dice throw 
# function
  
# Importing random library
import random
  
# Function to give an unbiased dice throw
def dice_throw():
      
    # Declaring the sequence
    sequence = [1, 2, 3, 4, 5, 6]
      
    # using random.randint() to  
    # get a random index number  
    rand_idx = random.randint(0, len(sequence)-1)
  
    # Printing the random result
    print(sequence[rand_idx])
  
# Driver Code
# Calling the function
dice_throw()
  
# Calling the function
dice_throw()
  
# Calling the function
dice_throw()

Output:

1
5
4

Method 4: Using random.random()

This method generates the floating-point numbers in the range of 0 to 1. We can also get the index value of list using this function by multiplying the result and then typecasting to int to get integer index and then corresponding list value. Then we will use that index value to print a random number from the list.

Syntax : random.random()

Parameters : This method does not accept any parameter.

Returns : This method returns a random floating number between 0 and 1.

Python3




# Python program to design an unbiased dice throw 
# function
  
# Importing random library
import random
  
# Function to give an unbiased dice throw
def dice_throw():
      
    # Declaring the sequence
    sequence = [1, 2, 3, 4, 5, 6]
      
    # using random.random() to  
    # get a random number  
    rand_idx = int(random.random() * len(sequence)) 
  
    # Printing the random result
    print(sequence[rand_idx])
  
# Driver Code
# Calling the function
dice_throw()
  
# Calling the function
dice_throw()
  
# Calling the function
dice_throw()

Output:

2
6
1

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :