Python编程实现8x8黑白格子采样:任意两个黑点不相邻
本文介绍使用Python编程实现8x8黑白格子的采样,其中任意两个黑点不相邻,并计算黑点数目的期望值。
import random
def generate_sample():
grid = [[0] * 8 for _ in range(8)] # 初始化8×8的网格
black_count = 0 # 记录黑点数目
# 随机选择两个不相邻的位置放置黑点
while black_count < 2:
row = random.randint(0, 7)
col = random.randint(0, 7)
if not has_adjacent_black(grid, row, col): # 检查是否与已有黑点相邻
grid[row][col] = 1 # 放置黑点
black_count += 1
return black_count
def has_adjacent_black(grid, row, col):
adjacent_positions = [(row-1, col), (row+1, col), (row, col-1), (row, col+1)]
for r, c in adjacent_positions:
if r >= 0 and r < 8 and c >= 0 and c < 8:
if grid[r][c] == 1:
return True
return False
# 进行采样并计算黑点数目的期望值
num_samples = 1000000
total_black_count = 0
for _ in range(num_samples):
total_black_count += generate_sample()
expected_black_count = total_black_count / num_samples
print('Expected number of black points:', expected_black_count)
上述代码中,我们使用generate_sample函数来生成一个样本,该样本随机放置两个不相邻的黑点。然后,我们进行了多次采样,并计算所有黑点数目的期望值。最后,打印出黑点数目的期望值。
请注意,由于是通过随机采样来估计期望值,所以每次运行代码得到的结果可能会稍有不同。更多的采样次数将更接近真实的期望值。
原文地址: https://www.cveoy.top/t/topic/Qla 著作权归作者所有。请勿转载和采集!