我想創建一個數字組合列表,它只包含三個數字(0, 1, 2)
。如果n=1
那麼結果是這樣的{0, 1, 2}
。如果n=2
那麼結果是{00, 01,02, 10, 11, 12, 20, 21, 22}
。如果n=3
的結果將如{000,001 etc 222}
。我試圖用遞歸來創建這個函數。但我未能創建。我如何使用迭代來創建這樣的列表。任何人都可以幫助我創建三位數的數字0,1,2?
0
A
回答
0
遞歸方法在這裏可以很好地工作,如果你內存不足,你可能會採用rong方式,或者你可能只是有一個bug。
如果您想通過迭代要做到這一點,你可以看看這個問題是這樣的:你希望所有的數字從0到3^n - 1
在基地3.現在你只需要convert to base 3(與0墊)
0
嘗試轉換爲字符串,檢查(長度< = n),並在必要時預先設置(n長度)0。 [編輯]也就是說,假設你正在談論的格式... [EDIT V2]我相信這是不是最快的方式來做到這一點,但你可以遞歸列出從0 - x的所有數字,並使用前述字符串方法迭代數字,檢查是否使用了0 - n以外的任何字符。
0
此代碼將爲您提供有關如何遞歸處理這些問題的想法。由於遞歸性質,它會有相當多的重複。我留給你刪除those.Also它打印輸出所有n
public void GetMaxPerm(int[] array, int k, List<int> output, int start, int end)
{
string str = GetString(output);
Console.WriteLine(str);
if (k == end)
{
return;
}
for (int i = start; i < end; i++)
{
output.Add(array[i]);
GetMaxPerm(array, k + 1, output, start , end);
output.Remove(array[i]);
GetMaxPerm(array, k + 1, output, start, end);
}
return;
}
private string GetString(List<int> output)
{
string opString = String.Empty;
foreach (var str in output)
{
opString = opString + String.Format(" {0} ", str);
}
return opString;
}
測試代碼:
[TestMethod()]
public void GetMaxTest1()
{
int[] array = new[] { 0, 1, 2 };
Class obj = new Class();
List<int> output = new List<int>();
obj.GetMaxPerm(array, 0, output, 0, 3);
}
入住這Gist
相關問題
- 1. 任何人都可以幫助我嗎?
- 2. 任何人都可以幫助我創建Jmeter框架嗎?
- 3. 任何人都可以幫助我爲我的tomcat副本創建Dockerfile嗎?
- 4. 任何人都可以幫助我調試我的程序
- 5. 任何人都可以幫助我,創建.apk文件谷歌安卓市場
- 6. 任何人都可以幫助定位CSS?
- 7. 任何人都可以使用以下JScript幫助我嗎?
- 8. 任何人都可以用這個(Javascript數組)幫助嗎?
- 9. 任何人都可以幫助我爲我的數據表添加Javascript分頁
- 10. 任何人都可以幫助我的代碼在ATM?
- 11. JavaScript中的循環 - 任何人都可以幫助我理解?
- 12. 任何人都可以幫助我的PHP圖表?
- 13. 任何人都可以幫助我的Windows API NetApi32?
- 14. 任何人都可以幫助我使用C++類嗎?
- 15. PHP。任何人都可以幫助我preg_match?
- 16. 任何人都可以幫助我與PHP集成PHP?
- 17. 任何人都可以幫助我這個宏嗎?
- 18. 任何人都可以在c中幫助我嗎?
- 19. 任何人都可以幫助我使這個對象。 (php)
- 20. 任何人都可以幫助我找到Microsoft.VisualStudio.SourceSafe.Interop .dll嗎?
- 21. 任何人都可以幫助我提高查詢效率嗎?
- 22. 任何人都可以幫助我進行sp優化嗎?
- 23. 任何人都可以用vector和class來幫助我嗎?
- 24. 任何人都可以幫助我解決這個問題嗎?
- 25. 任何人都可以幫助我們與omnet ++集成嗎?
- 26. 任何人都可以幫助我確定算法嗎?
- 27. 任何人都可以幫助我在這個代碼
- 28. 任何人都可以幫助我與twitter home_timeline api?
- 29. 任何人都可以給我關於地面實況數據的幫助
- 30. 任何人都可以幫助我在一行中寫這個函數嗎?
埃裏克利珀有一個[不錯的博客(HTTPS: //ericlippert.com/2013/04/15/producing-permutations-part-one/)。 –