```python
import random
def shuffle(arr):
n = len(arr)
for i in range(n-1, 0, -1):
j = random.randint(0, i)
arr[i], arr[j] = arr[j], arr[i]
return arr
示例用法
cards = list(range(1, 53)) 生成1到52的整数序列,代表52张牌
shuffled_cards = shuffle(cards)
print(shuffled_cards)
```
解释
导入random模块 :用于生成随机数。
定义`shuffle`函数
接受一个列表`arr`作为参数。
使用Fisher-Yates算法,从后往前遍历列表,每次随机选择一个位置`j`,并与当前位置`i`的元素交换。
示例用法
创建一个包含1到52的整数列表`cards`,代表52张牌。
调用`shuffle`函数对`cards`进行洗牌。
打印洗牌后的结果。
这个程序可以生成一个随机排列的牌组,适用于模拟真实的洗牌过程。你可以根据需要修改和扩展这个程序。