【发布时间】:2021-12-25 14:42:49
【问题描述】:
我想编写一个程序,在一个 8x8 二维数组上,我输入一个 0 到 64 之间的整数,它会在数组上随机放置那个数量的“Z”。我不知道如何生成一个没有任何重复对的随机数对循环。由于生成的随机数对将代表 2D 数组中放置“Z”的位置,因此不应生成重复的对,以便打印所有“Z”。
【问题讨论】:
-
如果数字是从 0 到 64,首先用
-1填充表格,然后您可以查看特定元素是否已被占用。
我想编写一个程序,在一个 8x8 二维数组上,我输入一个 0 到 64 之间的整数,它会在数组上随机放置那个数量的“Z”。我不知道如何生成一个没有任何重复对的随机数对循环。由于生成的随机数对将代表 2D 数组中放置“Z”的位置,因此不应生成重复的对,以便打印所有“Z”。
【问题讨论】:
-1 填充表格,然后您可以查看特定元素是否已被占用。
由于问题的大小仅为 64,因此一种有效的方法是:
Ai = Gr * grid columns + Gc,其中Ai 是一维数组中的第 i 个元素,Gr 是第 r 行网格,Gc 是网格的第 c 列。n 乘以字母'Z' 放入数组中,其中n 是用户的输入。例如,您可以将它们全部放在项目数组的第一个 n 位置。'Z' 字母放置到网格中,即:Gr = Ai / grid columns 和 Gc = Ai % grid columns。您也可以完全不需要步骤 1 的临时数组来执行此操作。只需即时翻译每个坐标。
有关相关问题,另请参阅:Choosing random cards from a deck?。
【讨论】: