对不起,这听起来像是家庭作业,但我需要这个功能才能在我们的项目中实施。
for (string strLine; std::getline(filein, strLine);)
{
int iSum = 0;
for (const auto& c : strLine)
iSum += static_cast<int>(c);
int iRand = iSum % 101;
using namespace std;;
fileout << strLine << "\t" << iSum << "\t" << iRand << endl;
}
我在1000个随机字符串上运行它。结果不统一。这并不奇怪,因为我的映射功能令人尴尬。
我试着看Pseudo-random number generation,有点迷路。
答案 0 :(得分:3)
为什么不使用内置的std::hash
#include <string>
#include <functional>
std::hash<std::string> hasher;
iRand = hasher(strLine) % 101; // iRand will be in [0,100] range