任意の (正の) 数値を返す可能性がある乱数関数を探していますが、統計的にはゼロにはほど遠い可能性があります。私は自分のニーズに合ったアルゴリズムを持っていますが、非効率的です:
def my_random():
if random.randrange(2):
return 1 + my_random()
return 0
再帰なしで書き直すことができることはわかっていますが、それは非効率性を実際に否定するものではありません。より優れたパフォーマンスを持つ代替アルゴリズムを提案できる人はいますか?
私の実装言語は python ですが、重要なのはアルゴリズムです。