簡體   English   中英

給定最大非零值的限制,如何在Java中生成給定長度的隨機二進制數?

[英]How to generate a random binary number of a given length in Java given a limit on the maximum non-zero values?

我想在 Java 中生成一系列隨機二進制數,並指定它可以擁有的1的最大數量。

例如,如果閾值為 4 且二進制數的長度為 9,則可能的值為:

  • 111100000
  • 100011010
  • 001111000

建議算法:

  1. 在零和threshold之間取一個隨機數n ,它將是字符串中的 1 的數量(包括兩端)
  2. 創建一個 ArrayList list並向其中添加n個。
  3. 然后將 9 個減去n零添加到同一個列表中
  4. 調用Collections.shuffle(list)隨機打亂列表元素
  5. 使用StringBuilder將列表轉換為字符串

暫無
暫無

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

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