小编Ale*_*lex的帖子

静态函数帮助C++

我无法解决这个问题.这是一个简单的例子:

class x
{
    public:
    void function(void);

    private:
    static void function2(void);
};

void x::function(void)
{
    x::function2(void);
}

static void function2(void)
{
     //something
}
Run Code Online (Sandbox Code Playgroud)

我得到错误,其中抱怨function2是私有的.如果我把它公开(我真的不想这样做),我会得到关于对function2的未定义引用的错误.我究竟做错了什么?谢谢!

c++ static-functions

20
推荐指数
1
解决办法
2万
查看次数

用OpenGL编译OpenCV

我正在尝试在Centos 5.10上编译opencv 2.4.6.1。但是,每当我添加WITH_OPENGL = ON时,我都无法对其进行编译。

我的cmake行:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv-2.4.6.1-test -D CMAKE_CXX_COMPILER=/usr/local/gcc-4.8.1/bin/g++ -D CMAKE_C_COMPILER=/usr/local/gcc-4.8.1/bin/gcc -D BUILD_opencv_python=OFF -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-5.5/ -D WITH_FFMPEG=YES -D BUILD_EXAMPLES=ON -D WITH_TBB=ON -D TBB_INCLUDE_DIRS=/opt/intel.2013.0.028/tbb/include/ -D TBB_LIB_DIR=/opt/intel.2013.0.028/tbb/lib/intel64/ -D WITH_IPP=ON -D ENABLE_PROFILING=ON -D WITH_OPENGL=ON  ..
Run Code Online (Sandbox Code Playgroud)

我还设置了以下环境变量:

export IPPROOT=/opt/intel.2013.0.028/ipp/
export PKG_CONFIG_PATH=/usr/local/ffmpeg-2.0.2/lib/pkgconfig
Run Code Online (Sandbox Code Playgroud)

结果是:

-- The CXX compiler identification is GNU
-- The C compiler identification is GNU
-- Check for working CXX compiler: /usr/local/gcc-4.8.1/bin/g++
-- Check for working CXX compiler: /usr/local/gcc-4.8.1/bin/g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting …
Run Code Online (Sandbox Code Playgroud)

opengl opencv centos5

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

协助查找密码系统的素数

我是大学生,有一项任务,需要找到大的素数.教授给了我以下"简单"算法,找到2个可能的素数.

  1. 生成随机a和p,其中1 <a <p
  2. 确认gcd(a,p)= 1 - 这是假设删除Carmichael数字编辑(意味着等于1)
  3. 如果x ^(p-1)%p = 1则执行"模幂运算",其中x从零开始,并且对于p和a,递增到p-1

第3步的示例.

假设p = 5

1 ^ 4%5 = 1

2 ^ 4%5 = 1

3 ^ 4%5 = 1

4 ^ 4%5 = 1

这表明5是素数.

我通过这个任务意识到计算素数不是开玩笑.我用上述算法看到的问题是,如果我猜测大数并用模幂运算测试它们,我可能会尝试将大数字增加到一个大数.这让我怀疑.我已经研究了确定性有限自动机和Eratosthenes的筛子.有没有人有任何建议要么改进给定的算法或提供任何形式的帮助?谢谢你的时间.

primes cryptography

4
推荐指数
1
解决办法
325
查看次数

rand()引起的浮点异常在c ++中

我有一个似乎无法解决的问题.我随机生成数字以确定我的数字是否是相对论素数.

这是给我一个浮点异常的函数:

bool modularExponentiationTest(unsigned long long exponent, unsigned long long modulus)
{
    short index = 0;
    unsigned long long base;
    unsigned long long result;

    do
    {
            result = 1;
            base = rand() % exponent; // <--CAUSED BY THIS

            while (exponent > 0) 
            {
                if (exponent & 1)       
                        result = (result * base) % modulus;
                exponent >>= 1;
                base = (base * base) % modulus;
            }

            if (result != 1)
                return false;
    }while(++index < 10);

    return true;
}
Run Code Online (Sandbox Code Playgroud)

通过执行以下操作,我在不同的函数中实现随机种子:

 srand(time(NULL));
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助!

c++ floating-point-exceptions

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