gpt4 book ai didi

objective-c - 遍历矩阵的哈希函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:31:19 27 4
gpt4 key购买 nike

给定一个 NxN 矩阵和一个 (row,column) 位置,以随机(或伪随机)顺序选择不同位置的方法是什么,尽量避免碰撞?

例如:考虑一个 5x5 矩阵并从 (1,2) 开始

0 0 0 0 0 
0 0 X 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

我正在寻找类似

的方法
(x,y) hash (x,y);

跳转到矩阵中的不同位置,尽可能避免碰撞(不关心如何返回两个不同的值,没关系,想想一个数组)。

当然,我可以简单地使用

row = rand()%N;
column = rand()%N;

但是避免碰撞并不是那么好。
我想我可以对 rowcolumn 应用两次简单的哈希方法,并将结果用作新坐标,但我不确定这是一个好的解决方案。

有什么想法吗?

最佳答案

你能在开始迭代之前确定行走的顺序吗?如果您的矩阵很大,这种方法不是节省空间的,但它很简单并且不会发生冲突。我会做类似的事情:

  1. 生成所有坐标的数组。从列表中删除起始位置。
  2. 随机播放列表(有 Fisher-Yates 随机播放的示例代码 here)
  3. 将打乱后的列表用于步行顺序。

关于objective-c - 遍历矩阵的哈希函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7462256/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com