小编Ale*_*lex的帖子

迭代大小为 k 的不同子集

我有一个由 n 个整数组成的数组(不一定是不同的!),我想遍历所有大小为 k 的子集。但是我想排除所有重复的子集。

例如

array = {1,2,2,3,3,3,3}, n = 7, k = 2
Run Code Online (Sandbox Code Playgroud)

那么我想要迭代的子集(每次一次)是:

{1,2},{1,3},{2,2},{2,3},{3,3}
Run Code Online (Sandbox Code Playgroud)

这样做的有效算法是什么?递归方法是最有效/最优雅的吗?

如果您有特定于语言的答案,我将使用 C++。

c++ algorithm subset

5
推荐指数
1
解决办法
2060
查看次数

散列非ascii字符C#

这是两个哈希生成器:

  1. http://www.md5hashgenerator.com/index.php
  2. http://www.miraclesalad.com/webtools/md5.php

现在,我的问题是:为什么在尝试散列char'€'(0x80)时哈希值会有所不同?我认为这是因为'€'不是普通的ASCII字符.两个哈希中的哪一个是"正确的"?

我正在尝试使用C#计算哈希生成器1返回的哈希值.此散列函数不会返回它.

private string GetMD5Hash(string TextToHash)
{
        if ((TextToHash == null) || (TextToHash.Length == 0))
        {
            return string.Empty;
        }
        MD5 md5 = new MD5CryptoServiceProvider();
        byte[] textToHash = Encoding.Default.GetBytes(TextToHash);
        byte[] result = md5.ComputeHash(textToHash);
        return BitConverter.ToString(result).Replace("-", "").ToLower();
}
Run Code Online (Sandbox Code Playgroud)

我怎么能改变它所以它返回我想要的哈希?


附加信息:我制作了一个AutoIt脚本:

#include  <Crypt.au3>
ConsoleWrite(StringLower(StringMid(_Crypt_HashData(Chr(128), $CALG_MD5),3)) & @CRLF)
Run Code Online (Sandbox Code Playgroud)

它返回我想要的哈希!但是我需要一个C#代码:)

c# md5

3
推荐指数
1
解决办法
2654
查看次数

标签 统计

algorithm ×1

c# ×1

c++ ×1

md5 ×1

subset ×1