洗牌程序怎么写

时间:2025-01-25 03:33:31 单机游戏

```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`进行洗牌。

打印洗牌后的结果。

这个程序可以生成一个随机排列的牌组,适用于模拟真实的洗牌过程。你可以根据需要修改和扩展这个程序。