如何根据百分比概率生成伪随机字符串?

How to generate pseudo random string based on percentage probability?

我是 python 编程新手,目前正在研究 python 随机模块以根据概率生成伪随机字符串。

我需要根据获得字符串“hello”的概率为 50% 的概率获取随机字符串。

我已经尝试在网上找到解决方案,但运气不好,浪费了很多时间。

如果有人对我的问题有任何想法,请告诉我。

有很多方法可以做到这一点。这是一个:

import random
print(random.choice(['hello','other']))

如果你想让另外50%的时间得到随机字符串,你可以这样做:

import random
r = random.choice(['hello','other'])
if r == "other":
    print(''.join(random.sample("abcdefghijklmnopqrstuvwxyz", 5)))
else:
    print(r)

另一种方法是使用 numpy.random.choice,它允许您分配权重以确定从列表中选择元素的可能性。

import numpy as np

greetings = ['hello', 'good-bye', 'good morning', 'see you later', 'hi', 'bye']
weights = [0.5, 0.1, 0.1, 0.1, 0.1, 0.1]
result = np.random.choice(greetings, p=weights)
print(result)

通过随机取两个数字。两者中的任何一个都有 50% 的几率被选中。所以其中一个数字代表字符串“hello”,另一个数字代表另一个字符串

举个简单的例子:

import random

a = random.randint(1, 2)
if a == 1:
    print("hello")
else:
    print("bye")

如果您希望另一个词是随机的,我可以建议 2 个可能的选项:

  • 创建一个包含全名的列表并随机取一个。
  • 安装一个可以创建随机词的内置库,如库:random-word

对于第一个选项,我在这里提到了一个代码示例:

import random
other_words = ["whats up", "No problem", "See you later", "bye", "busy", "where are you", "have fun", "great"]
a = random.randint(1, 2)
if a == 1:
    print("hello")
else:
    print(random.choice(other_words))