Algorithm 如何根据latitude&;生成4位验证码;经度信息?
我的应用程序需要此功能:Algorithm 如何根据latitude&;生成4位验证码;经度信息?,algorithm,hash,Algorithm,Hash,我的应用程序需要此功能: 用户A可以上传他的位置信息,并获得添加代码 在服务器上生成 用户B可以输入添加代码,还必须上传其位置 信息。只有当userA和userB足够接近并添加代码时 他们终于可以成为朋友了 在计算距离和比较添加代码之前,我将检查 他们的城市编号(每个城市唯一)是否相同。换句话说 换句话说,我必须确保在每个城市,添加代码不会 同时(或几分钟内)与另一方发生冲突 当然,一个4位数的数字不能满足所有的可能性,但是有没有办法生成这个4位数的数字来尽可能地满足这个特性呢 有没有办法生成这
所以。。如果你用“基地1234567”怎么办?在这种情况下,4位数字具有2323050529221951952581345121排列。地球表面约为5.101亿平方公里,因此这足以非常精确地编码一个位置(可能在几米之内?)。假设该序列在有限的时间内发生(并且Add代码并非始终有效): 您的4位数字不需要全局唯一,只需要在此时间窗口内唯一。因此,根据这一观察结果,维护一个Add代码表,这些代码是何时发布的,针对什么位置发布的。随机生成它们,确保它们不在表中。定期删除所有已过期的添加代码 如果您从未有超过10000个用户同时尝试相互连接,这将起作用
如果您需要更多的考虑,允许在表中重复,但使用LAT/LUN确保相同的添加代码永远不会分配到2x内的任何点,允许配对的最大距离。
< P>假设这个序列发生在有限的时间内(而不是添加代码对于所有时间是有效的): 您的4位数字不需要全局唯一,只需要在此时间窗口内唯一。因此,根据这一观察结果,维护一个Add代码表,这些代码是何时发布的,针对什么位置发布的。随机生成它们,确保它们不在表中。定期删除所有已过期的添加代码 如果您从未有超过10000个用户同时尝试相互连接,这将起作用如果您需要更多的考虑,允许在表中重复,但使用LAT/Load确保相同的添加代码永远不会分配到2x内的任何点,允许配对的最大距离。
代码不需要以任何方式连接到该位置,只是通过唯一。我说得对吗?如果您只是想确保没有冲突,那么可以在服务器中使用工厂设计模式。这样你就可以控制创建的代码。当用户B输入用户C而不是A的添加代码时会发生什么?@domen这就是为什么我必须检查他们的城市代码是否相同,并确保添加代码不会与同一城市中的其他代码冲突,假设同时使用此服务的用户数少于10000。您还没有真正回答。:)我所想的是意外错误的添加代码(可能是破坏性的,因为这项服务正在增长;例如,我的城市有1000万居民),也可能是故意错误的(有人只是粗暴地强迫他们中的10000人,可能会反复添加该地区的所有朋友)。代码不需要以任何方式连接到该位置,只需通过唯一的连接即可。我说得对吗?如果您只是想确保没有冲突,那么可以在服务器中使用工厂设计模式。这样你就可以控制创建的代码。当用户B输入用户C而不是A的添加代码时会发生什么?@domen这就是为什么我必须检查他们的城市代码是否相同,并确保添加代码不会与同一城市中的其他代码冲突,假设同时使用此服务的用户数少于10000。您还没有真正回答。:)我在想什么