gpt4 book ai didi

python - 我需要一个 Python 函数,当给定所需的字符概率时,它将输出 4 个不同字符的随机字符串

转载 作者:行者123 更新时间:2023-11-28 20:29:54 25 4
gpt4 key购买 nike

例如, 该函数可能类似于 def RandABCD(n, .25, .34, .25, .25):

其中n是要生成的字符串的长度,后面的数字是期望的A、B、C、D的概率。

我想这很简单,但是我在创建工作程序时遇到了问题。任何帮助将不胜感激。

最佳答案

下面是选择单个加权值的代码。你应该可以从这里拿走它。它使用 bisectrandom完成工作。

from bisect import bisect
from random import random

def WeightedABCD(*weights):
chars = 'ABCD'
breakpoints = [sum(weights[:x+1]) for x in range(4)]
return chars[bisect(breakpoints, random())]

这样调用它:WeightedABCD(.25, .34, .25, .25)

编辑:这是一个即使权重加起来不等于 1.0 也能工作的版本:

from bisect import bisect_left
from random import uniform

def WeightedABCD(*weights):
chars = 'ABCD'
breakpoints = [sum(weights[:x+1]) for x in range(4)]
return chars[bisect_left(breakpoints, uniform(0.0,breakpoints[-1]))]

关于python - 我需要一个 Python 函数,当给定所需的字符概率时,它将输出 4 个不同字符的随机字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/744127/

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