我希望能够得到这样的清单
var list=new List<int>{0, 1, 2};
Run Code Online (Sandbox Code Playgroud)
得到这样的结果
var result=
new List<List<int>>{
new List<int>{0, 1, 2},
new List<int>{0, 2, 1},
new List<int>{1, 0, 2},
new List<int>{1, 2, 0},
new List<int>{2, 0, 1},
new List<int>{2, 1, 0}
};
Run Code Online (Sandbox Code Playgroud)
我对缺少数字的集合感兴趣,只是存在数字的组合.有任何想法吗?
此外,我已经研究过诸如从数字列表中获取所有可能的组合之类的解决方案,但它们并不合适.
那个给了我这样的东西
var result=
new List<List<int>> {
// [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
// serialized the result to JSON so it would be quicker.
};
Run Code Online (Sandbox Code Playgroud)
它并没有吐出所有的组合.
我试图在C#中编写一个Heap算法的实现,但这种实现无法正常工作.我正在尝试创建一个通用实现,它将查找字符串的所有排列,并将它们添加到列表中.
我是这样开始的:
List<string> permutations = new List<string>();
GenerateHeapPermutations(3, "ABC", permutations);
foreach (var p in permutations)
{
Console.WriteLine(p);
}
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)
这是我的实施:
public static void GenerateHeapPermutations(int n, string s, List<string> sList)
{
if (n == 1)
{
sList.Add(s);
}
else
{
for (int i = 0; i < n - 1; i++)
{
GenerateHeapPermutations(n - 1, s, sList);
if (n % 2 == 0)
{
// swap the positions of two characters
var charArray = s.ToCharArray();
var temp = charArray[i];
charArray[i] = …Run Code Online (Sandbox Code Playgroud) 给定一些数字 n 和一个子集大小,我想获得集合 {1, ..., n} 的指定大小的所有可能子集。
为预期结果n = 5和subsetSize = 4:
{{1,2,3,4}, {1,2,3,5}, {1,3,4,5}, {1,2,4,5}, {2,3,4,5}}
Run Code Online (Sandbox Code Playgroud)
(那将是一个List<List<int>>)
这意味着我需要得到 (subsetSize 选择 n) 个子集(牛顿符号)。
任何可以为我找到这样一个整数列表的算法的想法?如果这很重要,我正在 C# 中实现它。
我试图将 AAAAAAAA - ZZZZZZZZ 的每个组合保存到文本文件中。到目前为止,在犯了很多错误之后,我几乎一无所获。如果需要,我可以发布我的代码,但它不起作用或接近想要的结果。
所以我想知道如何在 C# 中做到这一点。我目前的方法无法修复,我必须重新开始才能解决这个问题。
作为输出,我想要类似的东西
啊啊啊啊啊啊啊啊啊啊……ZZZZZZZX、ZZZZZZZY、ZZZZZZZZ
预先感谢您的任何帮助。
我有一个列表,我需要输出列表的每个子集
例如abcde
会输出到
a
b
c
d
e
ab
ac
ad
ae
abc
abd
abe
bcd
bce
....
abcde
Run Code Online (Sandbox Code Playgroud)
我相信正确的术语是组合,任何元素都不应该在同一行上重复
我打算用一系列循环尝试这个,但我甚至不确定我们是否要开始
有什么建议?
我是编程(C#)的新手。
该应用程序是一个“单词生成器”。
我正在寻找的是一个for循环,可以使用给定字符数组中的字符生成所有可能的单词。
我有一个List<char> = { A,a,6,w,# }(长度可能有所不同)
我想用此字符集生成所有可能的单词(例如:4个字母长)。此选项应生成5 characters & 4 letters = 5*5*5*5 = 625 words。
All generated words should be every possible combination of the given letters only
注意:有些人可能告诉我,我应该使用一种称为(字符串/整数的排列)的解决方案,如果所需的字长与给定的字符长度相同,则此方法似乎很好,但是在我的情况下,我可能给应用程序100个字符,但我希望它生成所有可能的单词-> 4个字母长(例如:MaRk,M @ rK,m4rK ...)
我试图使用编程语言提供的默认哈希函数生成三个不同的字符串 A、B 和 C,以便它们的哈希值全部相等。具体来说,我需要确保A不等于B,B不等于C,A不等于C。
我尝试了多种方法,但尚未成功找到解决方案。我正在寻求帮助来实现可以满足这些要求的方法或算法。所有三个字符串的哈希值必须相同,这一点至关重要。
这是我的实现,但是它仍然不完整,因为我与前两个字符串发生了冲突,但与第三个字符串没有发生冲突。
var dictionary = new Dictionary<int, string>();
int collusionCounter = 0, stringCounter = 0;
string myString;
int hash = 0;
List<string> myList = new List<string>();
while (true)
{
stringCounter++;
myString = stringCounter.ToString();
try
{
hash = myString.GetHashCode();
dictionary.Add(hash, myString);
}
catch (Exception)
{
if (dictionary.ContainsKey(hash))
{
myList.Add(myString);
collusionCounter++;
if (collusionCounter == 2)
{
break;
}
}
continue;
}
}
var A = myList[0];
var B = myList[1];
var C = dictionary[hash];
Console.WriteLine($"{A.GetHashCode()} {B.GetHashCode()} {C.GetHashCode()}");
Run Code Online (Sandbox Code Playgroud)
hier …
c# ×7
algorithm ×3
combinations ×2
loops ×2
.net ×1
arrays ×1
hashcode ×1
list ×1
permutation ×1
recursion ×1