Я хочу, чтобы функция генерировала список длины n, содержащий арифметику c последовательность чисел от 0 до 1, но в случайном порядке.
Например, для функции
def randSequence(n):
...
return myList
randSequence(10)
возвращает
[0.5, 0.3, 0.9, 0.8, 0.6, 0.2, 0.4, 0.0, 0.1, 0.7]
и
randSequence(5)
возвращает
[0.4, 0.0, 0.2, 0.8, 0.6]
В настоящее время он у меня есть, поэтому он генерирует последовательность чисел в одном l oop и случайном порядке в другом, следующим образом:
def randSequence(n):
step = 1 / n
setList = []
myList = []
for i in range(n):
setList.append(i * step)
for i in range(n):
index = random.randint(0, len(setList) - 1)
myList.append(setList.pop(index))
return myList
К сожалению, это решение медленное, особенно для больших чисел (например, n> 1 000 000). Есть ли лучший способ написать этот код, или даже лучше, есть ли функция, которая может выполнить эту задачу для меня?