一个数组里面是0到100排序的,循环遍历把它变成随机排序的,并且生成一个新数组
时间: 2024-05-03 14:22:28 浏览: 17
可以使用洗牌算法来实现将已排序的数组变成随机排序的数组,并生成一个新数组。具体步骤如下:
1. 复制原数组到新数组中;
2. 从数组末尾开始,依次将当前元素与一个随机位置的元素交换,直到数组的第一个元素;
3. 返回新数组。
以下是一个示例实现:
```python
import random
def shuffle_array(arr):
new_arr = arr.copy() # 复制原数组到新数组中
for i in range(len(new_arr)-1, 0, -1): # 从数组末尾开始循环
j = random.randint(0, i) # 随机选择一个位置
new_arr[i], new_arr[j] = new_arr[j], new_arr[i] # 将当前元素与随机位置的元素交换
return new_arr
```
使用示例:
```python
arr = list(range(101)) # 原数组是0到100排序的
new_arr = shuffle_array(arr) # 随机排序并生成新数组
print(new_arr)
```
输出结果类似于:
```
[76, 22, 46, 39, 65, 30, 88, 91, 73, 44, 7, 92, 63, 38, 81, 83, 49, 15, 67, 97, 58, 85, 35, 84, 96, 9, 98, 78, 99, 1, 26, 21, 13, 12, 25, 57, 17, 32, 71, 70, 34, 60, 54, 56, 55, 41, 11, 40, 72, 33, 79, 27, 53, 69, 77, 50, 66, 42, 20, 16, 18, 10, 3, 37, 14, 2, 80, 29, 23, 4, 47, 75, 31, 61, 90, 68, 62, 36, 95, 0, 8, 52, 5, 45, 48, 94, 87, 43, 89, 19, 86, 51, 24, 74, 6, 64, 28, 82, 59, 93]
```