Java は 6 桁の非反復乱数を生成します。友達を助けてください。
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-28 09:23:14
0
5
1122

サイクルに繰り返さないものはないのはわかっています~、そして繰り返し率を下げるしかないのですが、それでも試してみる必要があります~、試してくれる道教の友人はいますか~

曾经蜡笔没有小新
曾经蜡笔没有小新

全員に返信(5)
仅有的幸福

ランダム性の意味は、一般的に、A1 A2 がわかっても A3 の意味を推測できないということだと思います。
あなたが言及した値の繰り返しの問題は、それぞれの値を取得する確率が等しい場合、結果が「ランダム」であることを意味しますが、それは十分に「ランダム」ではないことを意味します。 。

値が重複しないように厳密に制限する必要がある場合は、保管場所が必要であり、この重複しないには時間または空間の範囲も必要です。

いいねを押す +0
某草草

私は以前、CSDN で非反復番号をランダムに生成するアルゴリズムを見ました:

リーリー
いいねを押す +0
阿神

愚かな方法は、配列を直接初期化し、各数値を正しい位置に配置してから、最初の結果を最後の桁と交換し、2 番目の結果を最後から 2 番目の桁と交換することです。 , 交換後は次回ランダムに選出されますそれに伴い数値の範囲も1つ減ります。

効率に関しては、投稿者が実装できます。

リーリー
いいねを押す +0
大家讲道理

ライフサイクルが長い場合、100,000は簡単に使い切ってしまいます。どのように生成しても繰り返します。

  1. 最も単純な Math.random()*10_0000 を int に変換します。それが繰り返されないという保証はありません。

    increment、mysql の主キーのインクリメントと同様に、1 から開始し、6 桁未満の場合は前を補うために 0 を使用します
  2. 上級ポイント: 6 桁の数値は、さまざまな影響要因を使用して組み合わせることができます。もちろん、この数値は比較的短く、考慮すべき要因はそれほど多くありません。
  3. 最後に、分散システム ID の生成に関する参考リンクを示します。これは問題とは関係ないかもしれませんが、参考情報もあります。

いいねを押す +0
刘奇

リーリー

0 ~ 100 が範囲、6 が数値です。さらに重要なのはスレッドの安全性です。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート