从 12 小时前开始,我一直在尝试实现 S 形曲线,但我无法成功。
我使用的是 Microsoft Visual Studio 2010。
公式是 y = 1/(1+exp(-e))
然而,当我尝试在代码中实现时它不起作用,为什么?有哪位高手指点一下,谢谢。
for(int y=0; y<bih.biHeight; y++)
{
for(int x=0; x<bih.biWidth; x++)
{
SetPixel(hdc, (double)1/((double)1+exp(double(-x))), bih.biHeight-x, red);
}
}
最佳答案
(double)1/((double)1+exp(double(-x)))
表达式的结果介于 0 和 1 之间。您不能绘制“子像素”可以你呢?
因此,要修复它,您需要将函数的结果乘以一个值,使其通过可见范围。例如:
(double)1/((double)1+exp(double(-x))) * bih.biHeight
关于c++ - 在 C++ 中实现 S 型曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9065607/