【发布时间】:2017-03-08 14:40:58
【问题描述】:
我有两个关于使用给定分布生成数字/单个字符的问题。
- 如何在 C++ 中实现拉普拉斯分布?我知道它在 boost 库中可用,但假设我不能使用它。另外,我在 c+11 的标准库中没有看到它。
-
如果我必须生成具有正态分布的字符文本,将生成的双数转换为 int 然后转换为 char 类型可以解决问题吗?
std::default_random_engine generator; std::normal_distribution<double> distribution(112.0,5.0); int number = (int)distribution(generator); // a-z characters if(number >= 97 && number <= 122) return (char)number; else generate once again;
希望得到您的帮助。
【问题讨论】:
-
为什么不创建一个从
'A'到'Z'(或它们的小写等效项)的正态分布?请注意,它仅适用于例如ASCII 或其他字母连续编码的编码。 -
你在那里试过吗?您对该解决方案有什么问题?
-
如果您不能使用 Boost.org 的解决方案,为什么您认为可以使用 StackOverflow.com 的解决方案?许可证没有那么不同。
标签: c++ distribution