2016-05-06 146 views
1

我有一個12位數的數字,其中前8位數是固定的,但最後4位數(數字)我想不同,它給我的範圍(0000-9999)。問題是這個腳本可能每天運行2-3次或不同的日子。 如果我使用隨機函數,可能會發生今天生成的一個數字與明天相同。任何解決方案每天/每天獲得不同的4位數字。每次/每天隨機數

+3

爲什麼要你在這裏隨意使用?從0到9999計數並存儲在某個地方,最後使用的數字是什麼。 – Tom

+0

[在Java中生成唯一的隨機數]可能的重複(http://stackoverflow.com/questions/8115722/generating-unique-random-numbers-in-java) – vefthym

回答

1

您無法將時間唯一縮減爲4位數字,以便立即消除此方法。

你需要做的是在某處存儲計數。從0開始。您的腳本需要增加存儲的數字,執行其任務,然後存儲遞增的值。如果該值達到10000,那麼您的計劃已達到您的容量限制。

如果您需要計劃出現隨機給您的用戶,然後映射該連續計劃爲一個混洗的一組數字,僅用於構建12位數字的目的。

0

我知道這可能不是你想要的,但是這是我做了一個方法,從產生的時間和一對數組的隨機數,操作和使用它,如果你能:)

import java.text.*; 
import java.util.*; 

public class Randomizer { 
public void randomizer() throws InterruptedException { 
    Randomizer r = new Randomizer(); 
    int[] numbers = { 3, 7, 2, 62, 1, 53, 16, 563, 12, 13, 75 }; 
    Calendar rightNow = Calendar.getInstance(); 
    int hour = rightNow.get(Calendar.HOUR_OF_DAY); 
    int minute = rightNow.get(Calendar.MINUTE); 
    int seconds = rightNow.get(Calendar.SECOND); 
    int[] numbers2 = { 10, 32, 61, 2, 5 }; 
    int[] date = { hour, minute, seconds }; 
    int RandomNumber = (r.getRandom(date) * r.getRandom(numbers)) + r.getRandom(numbers2); 
    System.out.println("Random number generated: " + RandomNumber); 

} 

public static int getRandom(int[] array) { 
    int rnd = new Random().nextInt(array.length); 
    return array[rnd]; 
} 

public static void main(String[] args) throws InterruptedException { 
    Randomizer r = new Randomizer(); 
    r.randomizer(); 

} 

} 
+0

如果這有問題,如果此代碼沒有請告訴我你的情況的相關性。 –

+0

@ Nathan-非常感謝你的這個節目。唯一的一點是它產生3位數字,但我只想要4位數字。 – sunny

+0

@sunny如你想使用的那樣操縱它,如果這是你正在尋找的答案,請點擊複選標記並上傳,這樣問題就會被關閉,任何其他問題都不要猶豫,詢問我或社區:) –