小编dad*_*ada的帖子

最快的素数测试算法

我需要在非常大的数字(在很长的范围内)之间的间隔上测试素数,所以我需要一些快速算法来检查数字是否为素数.请提出您的想法.

c++ algorithm math primes

34
推荐指数
6
解决办法
4万
查看次数

反向因子

好吧,我们都知道如果N给出它很容易计算N!.但反过来呢?

N!给出了你即将找到N - 这可能吗?我很好奇.

algorithm math

19
推荐指数
7
解决办法
2万
查看次数

N**K的位数

对于给定的整数N和K(1 <= N,K <= 2000000000),您必须找到N ^ K的位数.

有什么配方或什么的吗?因为我试图通过简单地驱动N**K来解决它,但是它不适用于大值,并且程序因为计算而简单地冻结.我正在寻找一些快速的方式,也许像我之前说过的一些数学公式.

c++ math

10
推荐指数
1
解决办法
368
查看次数

查找2D地图的无法到达的部分

我不希望你为我解决这个问题,我只是想问一些想法.

这是下面的输入,它代表一张地图.'x'代表土地,而点 - 水.因此,使用'x',您可以在地图上表示"孤岛".

xxx.x...xxxxx        
xxxx....x...x        
........x.x.x        
..xxxxx.x...x       
..x...x.xxx.x        
..x.x.x...x..        
..x...x...xxx        
...xxxxxx....        
x............ 
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,有一些岛屿是封闭的,即如果有一些船在其领土内,它将无法离开,因为:

..xxxxx.     
..x...x.        
..x.x.x.        
..x...x.
..xxxxx.
Run Code Online (Sandbox Code Playgroud)

还有一些开放的岛屿可以摆脱它们,例如:

.xxxxx        
.x...x        
.x.x.x        
.xxx.x       
Run Code Online (Sandbox Code Playgroud)

问题在于:对于上面给定的NxM地图,计算任何岛屿的开放状态,以及关闭的数量.

我再说一遍:我不想让你解决它,只需要一些吸气,解决的想法.谢谢

algorithm

7
推荐指数
1
解决办法
623
查看次数

大数量的因子分解

在课堂上我们发现了这个编程问题,目前我们还不知道如何解决它.

n给出正整数.众所周知n = p * q,在哪里pq是素数,p<=q以及|q-k*p|<10^5某些给定的正整数k.你必须找到p并且q.

输入:

35 1
121 1
1000730021 9
Run Code Online (Sandbox Code Playgroud)

输出:

5 * 7
11 * 11
10007 * 100003
Run Code Online (Sandbox Code Playgroud)

这不是家庭作业,我们只是想解决一些有趣的问题.如果您有一些想法,请在这里发布,以便我们可以尝试一下,谢谢.

algorithm rsa factorization

5
推荐指数
0
解决办法
1379
查看次数

最快的算法,可以将数字加总到N.

我想在C中使用非常快的算法或代码来执行以下任务:对于任何给定的整数N,将所有数字从1加到N,而不假设N是正数.我做了一个从1到N的求和循环,但它太慢了.

c c++ algorithm integer sum

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

查找大数字的最快数字总和的最快方法

我有一些大数字(再次),我需要找到数字的总和是否为偶数.我试过这个:用while循环找到数字的总和,然后检查那个总和%2是否等于0并且它正在工作但对于大数字来说它太慢了,因为我给出了数字间隔,如果输入是1999999 19999999999那么我的程序失败了,我无法在0,1秒的时限内完成.

该怎么办 ?有没有其他更快的方法来做到这一点?

编辑:输入1999999 19999999999意味着它将从1999999开始并检查我上面写的所有数字,直到19999999999,因为我们正在谈论大数字(<2 ^ 30)我的程序是不配的.

c++ while-loop

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

C++中的二维字符串

我想在C++中编写类似2d字符串的东西.我尝试过:

vector< vector<string> > table;
        int m,n,i,j;
        string s;
        cin>>n>>m;
        for(i=0;i<n;i++) {
                for(j=0;j<m;j++) {
                        cin>>s;
                        table[i][j] = s;
                }
        }
        cout << "\n\n\n\n";
        for(i=0;i<n;i++) {
                for(j=0;j<m;j++) {
                        cout<<table[i][j]<<" ";
                }
                cout<<"\n";
        }
Run Code Online (Sandbox Code Playgroud)

没有编译错误,但当我输入如下输入:

10 20
.....#..............
.....#..............
.....#..............
.....#..............
######..............
.......###..........
.......#.#..........
.......###...#######
.............#.....#
.............#######
Run Code Online (Sandbox Code Playgroud)

它给了我分段错误.为什么?怎么了 ?它应该怎么做才能正常工作?谢谢.

c++ stl matrix

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

这个"标签"在C++中意味着什么?

我正在阅读一些c ++代码,我看到了一些有趣的东西.

代码是这样的:

repeat:
    ...code here....
fallback:
    ...code here....
start:
        ....another code....
Run Code Online (Sandbox Code Playgroud)

这是我第一次在c ++代码中看到这种"标签",我称之为标签cos我在汇编代码中看到类似的东西,其中代码被分成具有以冒号结尾的不同标题的部分.

我问你这意味着什么,它有什么用?

c++

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

标签 统计

c++ ×6

algorithm ×5

math ×3

c ×1

factorization ×1

integer ×1

matrix ×1

primes ×1

rsa ×1

stl ×1

sum ×1

while-loop ×1