Python Program to Generate Random binary string
Last Updated : 17 Mar, 2023
Improve
Given a number n, the task is to generate a random binary string of length n.
Examples:
Input: 7 Output: Desired length of random binary string is: 1000001 Input: 5 Output: Desired length of random binary string is: 01001
Approach
- Initialize an empty string, say key
- Generate a randomly either "0" or "1" using randint function from random package.
- Append the randomly generated "0" or "1" to the string, key
- Repeat step 2 and 3 for the desired length of the string
Below is the implementation.
# Python program for random
# binary string generation
import random
# Function to create the
# random binary string
def rand_key(p):
# Variable to store the
# string
key1 = ""
# Loop to find the string
# of desired length
for i in range(p):
# randint function to generate
# 0, 1 randomly and converting
# the result into str
temp = str(random.randint(0, 1))
# Concatenation the random 0, 1
# to the final result
key1 += temp
return(key1)
# Driver Code
n = 7
str1 = rand_key(n)
print("Desired length random binary string is: ", str1)
Output:
Desired length random binary string is: 1000001
The Time and Space Complexity for all the methods are the same:
Time Complexity: O(n)
Auxiliary Space: O(n)
Using random.getrandbits():
import random
def generate_binary_string(n):
# Generate a random number with n bits
number = random.getrandbits(n)
# Convert the number to binary
binary_string = format(number, '0b')
return binary_string
# Test the function
n = 7
print("Random binary string of length {}: {}".format(n, generate_binary_string(n)))
#This code is contributed by Edula Vinay Kumar Reddy
Output
Random binary string of length 7: 1010000
Explanation:
The random.getrandbits(n) function generates a random number with n bits.
The format() function is used to convert the number to binary format. The format string '0b' specifies that the output should be in binary form.
Time Complexity: O(n), where n is the number of bits in the binary string.
Auxiliary Space: O(n), where n is the number of bits in the binary string. This is the space required to store the binary string.