gpt4 book ai didi

algorithm - 如何增加/减少随机(类型 4)UUID?

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

我如何实现给定版本 4 UUID A 生成有效版本 4 UUID B 的函数 increment(uuid),其中:

  1. B > A
  2. 不存在 B > C > A 的 C

对于给定版本 4 UUID A 产生有效版本 4 UUID B 的递减 (uuid) 也是如此,其中:

  1. B
  2. 不存在C,其中B < C < A

最佳答案

这是一个 python 函数来实现你想要的:

def increment_uuid(uuid, increment):
# Return a UUID value incremented by an integer

hex_str = uuid[:8] + uuid[9:13] + uuid[14:18] + uuid[19:23] + uuid[24:]
incremented_val = int(hex_str, 16) + increment
assert(incremented_val >= 0 and incremented_val <= 2 ** 128)
incremented_hex = format(incremented_val, '032x')
incrmented_uuid = incremented_hex[:8] + '-' + incremented_hex[8:12] + '-' + incremented_hex[12:16] \
+ '-' + incremented_hex[16:20] + '-' + incremented_hex[20:]
return incrmented_uuid

您现在只需将 UUID 递增 1 即可获得“序列”中的下一个:

import uuid
uuid_a = uuid.uuid4() # e.g. a32258b5-2781-44ec-9e00-f4b1185e9936
uuid_b = increment_uuid(str(uuid_a),1) # e.g. a32258b5-2781-44ec-9e00-f4b1185e9937

当然,它只是把数据当作128位的十六进制值,而忽略了版本号和变体位的限制。

关于algorithm - 如何增加/减少随机(类型 4)UUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12828014/

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