簡體   English   中英

如何根據百分比概率生成偽隨機字符串?

[英]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)) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM