ペニュプピリュリュリュミピピュポィポピリィを支える技術
※これはねこネット Advent Calendar 2024 の記事です。
import random
# 使用する文字と生成する文字列の設定
CHARACTERS = {
'ペ': 2,
'ミ': 2,
'プ': 2,
'ピ': 5,
'リュ': 8,
'リィ': 2,
'ポィ': 2,
'ポピ': 2,
'ニュ': 2,
}
STRING_LENGTH = 15 # 生成する文字列の長さ(目安)
NUM_STRING = 5 # 生成する文字列の数
def generate_unique_strings(characters_chain, length_min, length_max, count):
generated_strings = set()
length = random.randrange(length_min, length_max)
while len(generated_strings) < count:
random_string = "".join(random.choices(characters_chain, k=length))
generated_strings.add(random_string)
return list(generated_strings)
def main():
characters_chain = []
for charactors_list in [[k] * v for k, v in CHARACTERS.items()]:
characters_chain += charactors_list
# ユニークな文字列を生成
unique_strings = generate_unique_strings(characters_chain, STRING_LENGTH - 3, STRING_LENGTH + 3, NUM_STRING)
# 結果を表示
for idx, string in enumerate(unique_strings, start=1):
print(f"String {idx}: {string}")
if __name__ == "__main__":
main()
結果
String 1: ポピニュポピポィリュピニュリュニュリュニュピポピ
String 2: ピニュリィピリュリュリュピピポピリュリュリュ
String 3: ピピポィペプリュピミプペプニュリィ
String 4: ピポィリュリュリュリィピリュピリィピポピポィ
String 5: リィリュリュリュピプポィニュポピピポピリィピ