I am looking to generate random lengths and patterns of square brackets for example, [] ][ [] ][ [] [[ ]] []
I have so far managed to get my program to generate brackets randomly, but randomly in terms of how many times it generates them, so currently my program is giving me results such as,
[] [] [] [] [] []
[] [] []
[] [] [] [] []
So there is no randomness within the brackets, only randomness in the number of brackets displayed.
I want to know how I can make the order of the brackets random ASWELL as the amount of brackets on show.
Here is my code so far,
import random
import string
def randomGen(N):
return random.randint(1,N)
char1 = '['
char2 = ']'
finalist = []
newList = []
newList2 = []
newValue = randomGen(99)
for i in range(newValue):
newList = char1
newList2 = char2
finalist.append(newList + newList2)
for everChar in finalist:
print everChar,
Thanks.
You could use random.sample to select the index for where to place, say, left brackets. Then place right-brackets everywhere else:
In [119]: import random
In [122]: N = 10
In [125]: idx = set(random.sample(range(N), N//2))
In [126]: idx
Out[126]: {0, 1, 4, 5, 7}
In [127]: ''.join(['[' if i in idx else ']' for i in range(N)])
Out[127]: '[[]][[][]]'
Given your examples, I assumed you want an equal number of left and right brackets. If not, use jonrsharpe's solution.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With