为什么不是';t Pythons randint函数实际上是随机的?

为什么不是';t Pythons randint函数实际上是随机的?,python,random,numbers,Python,Random,Numbers,我用python编写代码已经有一段时间了,我偶然发现了Codecademys的练习,其中一个项目是创建一个战舰游戏,随机将一艘2x1战舰放置在5x5网格中。我注意到一个模式,在我女朋友连续三次正确猜出船在哪里之后。列的randint和行的randint从0,1开始。然后程序终止。再次启动该计划后,答案是1,2。接下来的三个答案是2,3,3,4,4,0。为什么会发生这种情况,而不是真正的随机 代码如下: import os, sys from random import randint os.sy

我用python编写代码已经有一段时间了,我偶然发现了Codecademys的练习,其中一个项目是创建一个战舰游戏,随机将一艘2x1战舰放置在5x5网格中。我注意到一个模式,在我女朋友连续三次正确猜出船在哪里之后。列的randint和行的randint从0,1开始。然后程序终止。再次启动该计划后,答案是1,2。接下来的三个答案是2,3,3,4,4,0。为什么会发生这种情况,而不是真正的随机

代码如下:

import os, sys
from random import randint
os.system("cls")
board = []
for x in range(0, 5):
    board.append(["O"] * 5)
def print_board(board):
    for row in board:
        print " ".join(row)
print_board(board)
def random_row(board):
    return randint(0, len(board) - 1)
def random_col(board):
    return randint(0, len(board[0]) - 1)
ship_row = random_row(board)
ship_col = random_col(board)
guess_row = int(raw_input("Guess Row:"))
guess_col = int(raw_input("Guess Col:"))
# Write your code below!
while guess_row!=ship_row and guess_col!=ship_col:
    print"You missed my battleship!"
    for i in range(len(board)):
        if i==guess_col:
            board[guess_row][i]="X"
    print_board(board)
    guess_row = int(raw_input("Guess Row:"))
    guess_col = int(raw_input("Guess Col:"))
print"Congratulations! You sank my Battleship!"

您的情况中有一个bug——您应该检查行或列是否错误,而不是两者是否都错误。事实上,如果只有一个数字是错的,你的程序就会说你赢了——所以有很多输入都是赢的。您注意到的模式只是一个巧合。

您的情况中有一个错误——您应该检查行或列是否错误,而不是两者是否都错误。事实上,如果只有一个数字是错的,你的程序就会说你赢了——所以有很多输入都是赢的。您注意到的模式只是一个巧合。

如果您认为您在一个与random同等重要的库中发现了一个重大缺陷,那么问题可能就在您这边。如果您认为您在一个与random同等重要的库中发现了一个重大缺陷,那么问题可能就在您这边。