2011-03-16 115 views
0

好吧,所以我有兩個僞代碼需要轉換成Java代碼,除了僞代碼不是很好,我甚至不好,它甚至當它好..無論如何,我希望有人可以幫忙。轉換糟糕的僞代碼到Java

以下爲僞碼的第一個比特:

  1. 創建一個隨機整數p 0和n-1個之間的範圍。
  2. 創建一個空的新字符串說x。
  3. 將元素0複製到p-1從scasol複製到x。
  4. 將字符串scasol的位置p的更改版本複製到x。
  5. 從p + 1複製到scasol的n-1到x。
  6. 設置scasol爲x。

這裏是我的代碼有它至今(我已經基本上完成了前兩個步驟,但之後卻困):

public void SmallChange() 

    { 
    Random rand = new Random(); 
    rand.setSeed(System.currentTimeMillis()); 


    int n = scasol.length(); 
    int p = Math.abs(rand.nextInt() % n); 
    String x; 


    if(n<0){ 

    } 

} 

這裏是第二一段代碼我不能轉換成Java(我沒有做過這一個任何東西,因爲我完全難倒):

  1. 我們需要添加一個for循環, 迭代爲 迭代指定號碼。
  2. 我們需要創建一個大小爲n的初始隨機 解決方案。
  3. 我們需要評估 循環中我們當前解決方案的適用性。
  4. 我們需要複製當前的解決方案 (比如oldsol)。
  5. 我們對 當前的解決方案進行了小改動,並將 適用於其他變量。
  6. 如果新的健身狀況比 舊,我們將oldsol複製回 我們目前的解決方案。
  7. For循環完成後,我們 返回當前的解決方案。

第一個問題是完成一個小小的改變,而第二個是創建一個隨機變異爬山算法,但是卡住不是這個詞。我希望有人能幫助,我真的很感激任何幫助,因爲我一直在努力這麼做幾天!

+0

如果您熟悉基本的Java,並且您瞭解問題,那麼您可以執行此操作。如果你不懂基本的Java,請閱讀一些可用的優秀教程。如果您不瞭解僞代碼,請與寫它的人交談。互聯網上的隨機人員不會更好地理解它。如果您有關於Java的具體問題,請詢問他們。 – DJClayworth

+1

看起來像家庭作業懷疑 - 請標記爲這樣。我不知道這個僞代碼有什麼問題 - 它非常詳細,佈局非常詳細,如果我介紹它,我會比較困難。 –

+0

不是,現在兩年都沒有上過學。 –

回答

1

僞碼的第一位說:

在文本scasol的隨機位置插入一個「更改版本」。目前還不清楚「更改版本」所指的是什麼。

在字符串中插入字符是Java中的一項簡單任務。
請參閱public StringBuilder insert(int offset, char c)

僞代碼的第二部分迫切需要上下文和說明。

+0

嗯,我已經有一些代碼可以打印5個數字,小改動應該改變字符串中的一個數字,然後輸出另一個數字。所以目前的數字是111111,如果有小的變化,它應該改變其中一個數字並重新輸出。例如:101111. –

+0

對於第二位代碼,我所知道的是它會創建一個隨機突變爬山算法,並將添加到第一個僞代碼的代碼中以創建程序。 –