php - 根据邮政编码向用户显示相同结果的最佳方式是什么?

标签 php algorithm search random

我正在开发一个网站,用户可以在该网站上搜索他们输入的位置(在英国)附近的“某物”。可能有多达 10 个以上的匹配结果,但客户一次只希望显示 3 个结果。因为每个“某物”支付相同的金额才能被列出,所以每个“某物”应该有相同的显示机会......并且每次同一用户进行搜索时这些结果不应该改变..

我正在考虑使用用户邮政编码作为种子,并从匹配列表中随机选择 3 个结果。这是实现这一目标的好方法吗?我的其他选择是什么?

最佳答案

您可以使用发起请求的 IP 地址的最后两个八位字节作为随机种子。这将为您提供稍微均匀分布的 65,536 个可能的种子值。然后我会在 cookie 中将他们的 IP 地址设置回他们,以防他们通过随机化他们连接的外部地址的网络进行连接。如果存在,您将使用 cookie 的值,否则使用他们的实际地址。

我说的是最后两个八位字节而不是前两个八位字节,因为使用前两个八位字节会导致例如同一本地 ISP 的所有用户最终都会收到相同的结果,我希望最后两个八位字节由您的用户更均匀地分配。

请注意,例如通过一个地址路由所有流量的公司或大学,该机构中的所有用户都将使用这种方法看到相同的结果。

如果您不反对 cookie 的想法,请设置一个 1 年左右的 cookie,每次访问都会更新,其中包含 64 位左右的随机垃圾。然后用它作为你的种子。

关于php - 根据邮政编码向用户显示相同结果的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4160362/

相关文章:

php - 如何使用 SQL 查询优化 while 循环?

algorithm - 如果我们将 12 扩展到任意数字,圣诞节的十二天总共有多少礼物?

java - 即使字符串与 Java 匹配,compareTo 也会返回 -1

python - 如何对元组列表执行搜索

java - 如何在mysql查询中找到byte[]?

PHP构建系统

PHPBB 主页集成?

javascript - 避免在分页时刷新页面 Laravel

python - 一种在 python 中从数据对创建集群的算法

python - python 数学游戏中不允许否定答案的奇怪问题