第五章数学知识(代码片段)

辉小歌 辉小歌     2023-01-22     127

关键词:

筛质数

1292. 哥德巴赫猜想【线性筛】


https://www.acwing.com/problem/content/1294/
就先筛出所有的质数,然后枚举找即可。第一次找到的就是答案,因为俩数都是往中间靠的,故越先发现,差越大。

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int prime[N],st[N],cnt,n;
void init()

    int len=1e6;
    for(int i=2;i<=len;i++)
    
        if(!st[i]) prime[cnt++]=i;
        for(int j=0;prime[j]<=len/i;j++)
        
            st[i*prime[j]]=1;
            if(i%prime[j]==0) break;
        
    

int main(void)

    init();
    while(cin>>n,n)
    
        bool flag=0;
        for(int i=0;i<cnt;i++)
        
            if(!st[n-prime[i]])
            
                printf("%d = %d + %d\\n",n,prime[i],n-prime[i]);
                flag=1;
                break;
            
        
        if(!flag) puts("Goldbach's conjecture is wrong.");
    
    return 0;

1293. 夏洛克和他的女朋友【二分图】


https://www.acwing.com/problem/content/description/1295/
详细题解

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],n;
bool check(int x)

    for(int i=2;i<=x/i;i++) if(x%i==0) return true;
    return false;

int main(void)

    cin>>n;
    bool flag=0;
    for(int i=2;i<=n+1;i++) if(check(i)) a[i]=1,flag=1;
    if(flag) cout<<2<<endl;
    else cout<<1<<endl;
    for(int i=2;i<=n+1;i++)
    
        if(a[i]) cout<<2<<" ";
        else cout<<1<<" ";
    
    return 0;

196. 质数距离【大区间内筛质数】


https://www.acwing.com/problem/content/description/198/
详细题解

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
typedef long long int LL;
int prime[N],cnt,st[N],l,r;
void init()

    cnt=0;
    memset(st,0,sizeof st);
    int n=1e6;
    for(int i=2;i<=n;i++)
    
        if(!st[i]) prime[cnt++]=i;
        for(int j=0;prime[j]<=n/i;j++)
        
            st[i*prime[j]]=1;
            if(i%prime[j]==0) break;
        
    

int main(void)

    while(cin>>l>>r)
    
        init();
        memset(st,0,sizeof st);
        for(int i=0;i<cnt;i++)
        
            LL p=prime[i];
            for(LL j=max(2*p,(l+p-1)/p*p);j<=r;j+=p) st[j-l]=1;
        
        cnt=0;
        for(int i=0;i<=r-l;i++) if(!st[i]&&i+l>=2) prime[cnt++]=i+l;
        if(cnt<2) puts("There are no adjacent primes.");
        else
        
            int minv=1,maxv=1;
            for(int i=1;i<cnt;i++)
            
                int temp1=prime[i]-prime[i-1];
                int min_temp=prime[minv]-prime[minv-1];
                int max_temp=prime[maxv]-prime[maxv-1];
                if(temp1<min_temp) minv=i;
                if(temp1>max_temp) maxv=i;
            
            printf("%d,%d are closest, %d,%d are most distant.\\n",prime[minv-1],prime[minv],prime[maxv-1],prime[maxv]);
        
    
    return 0;

分解质因数

197. 阶乘分解


https://www.acwing.com/problem/content/199/
详细题解

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int prime[N],st[N],cnt;
void init(int n)

    for(int i=2;i<=n;i++)
    
        if(!st[i]) prime[cnt++]=i;
        for(int j=0;prime[j]<=n/i;j++)
        
            st[i*prime[j]]=1;
            if(i%prime[j]==0) break;
        
    

int main(void)

    int n; cin>>n;
    init(n);
    for(int i=0;i<cnt;i++)
    
        int temp=0;
        for(int j=n/prime[i];j;j/=prime[i]) temp+=j;
        cout<<prime[i]<<" "<<temp<<endl;
    
    return 0;

快速幂

1289. 序列的第k个数【简单快速幂】


https://www.acwing.com/problem/content/1291/

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int mod=200907;
LL quick_mi(LL a,LL b,LL p)

    LL sum=1;
    while(b)
    
        if(b&1) sum=sum*a%p;
        b>>=1;
        a=a*a%p;
    
    return sum%p;

LL t,a,b,c,k;
int main(void)

    cin>>t;
    while(t--)
    
        cin>>a>>b>>c>>k;
        if(a+c==2*b) cout<<(a+(b-a)*(k-1))%mod<<endl;
        else cout<<a*quick_mi(b/a,k-1,mod)%mod<<endl;
    
    return 0;

1290. 越狱【组合数 / 快速幂】


https://www.acwing.com/problem/content/description/1292/
详细题解

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int mod=100003;
LL n,m;
LL quick_mi(LL a,LL b)

    LL sum=1;
    while(b)
    
        if(b&1) sum=sum*a%mod;
        b>>=1;
        a=a*a%mod;
    
    return sum%mod;

int main(void)

    cin>>m>>n;
    cout<<(quick_mi(m,n)-m*quick_mi(m-1,n-1)%mod+mod)%mod;
    return 0;

第五章学习小结(代码片段)

整理一下第五章学到的知识树的基本概念节点:节点包括一个数据元素及若干指向其他子树的分支。节点的度:节点所拥有子树的个数称为节点的度。叶节点:度为0的节点成为叶结点,叶结点也称为终端节点。分支节点:度不... 查看详情

第五章学习小结(代码片段)

第五章学习了树与二叉树的相关知识,有二叉树及其存储结构,二叉树的前中后与层次遍历并且了解了哈夫曼树,最后学习了树与森林的转换。以下是其中的一道实践题,老师在课堂上详细的给出了解题方法7-2 深入虎穴 ... 查看详情

第五章:异常处理(代码片段)

第五章:异常处理知识梳理本章内容分为:异常处理概述、try-catch处理异常、throw和throws、自定义异常。5.1异常处理概述问题:为什么要异常处理???编程中我们常说没有完美的代码,几乎每个应用... 查看详情

数据结构:第五章学习小结(代码片段)

第五章我们主要学习了树和二叉树的定义、性质、存储结构以及部分操作还有哈夫曼树。下图是我对本章所学知识的大致总结: 在这章的代码题中,我也学到了很多,其中Listleaves这题就有很多小细节:1.boolcheck[n]=false;//定义... 查看详情

离散数学第四第五章

查看详情

第五章eureka服务注册与发现(尚硅谷springcloud)(代码片段)

文章目录一、Eureka基础知识二、单机Eureka构建步骤三、集群Eurake构建步骤四、actuator微服务信息完善五、服务发现Discovery六、eureka自我保护一、Eureka基础知识什么是服务治理1.springcloud封装了Netflix公司开发的Eureka模块来实现服务... 查看详情

docker|第五章:构建自定义镜像(代码片段)

前言上一章节,主要是介绍了下Dockerfile的一些常用命令的说明。我们知道,利用Dockerfile可以构建一个新的镜像,比如运行Java环境,就需要一个JDK环境的镜像,但直接使用公共的镜像时,一般上大小都比较大。所以本章节就主要... 查看详情

ds|数据结构||第五章小结(代码片段)

    本章主要学习了树和二叉树相关知识,包括二叉树的性质和存储结构(双亲表示法、孩子表示法、孩子兄弟法),二叉树的前、中、后序遍历算法等,还了解了哈夫曼树和哈夫曼编码的构造方法,以及森林与二... 查看详情

云计算第五章(代码片段)

Cloud-EnablingTechnology云使能技术BroadbandNetworksandInternetArchitecture宽带和Internet架构-Allcloudsmustbeconnectedtoanetwork(InternetorLAN)Thepotentialofcloudplatformsthereforegenerallygrowsinparallelwithadv 查看详情

《数学之美》——第五章个人笔记

第五章   隐含马尔可夫模型1通信模型通信的本质是一个编解码和传输的过程。典型的通信系统:包含雅格布森通信的六个要素:发送者(信息源),信道,接收者,信息,上下文和编码。其中S1,S2,S3,...表示信息源发... 查看详情

第五章:变量(代码片段)

变量:int表示整数double表示带小数点的char表示单个字符string表示在存储字符串的变量bool表示判断真假usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceAnt1///<summary>// 查看详情

第五章小结(代码片段)

第五章学习了二叉树:每个结点至多只有两颗子树,且子树有左右之分。二叉树的遍历:几乎所有操作建立在遍历的基础上,利用递归完成二叉树前(根)序,中(根)序,后(根)序遍历。 voidPreOrderTraverse(BiTreeT)If(T)//若二... 查看详情

第五章(代码片段)

 认识模块什么是模块模块的导入和使用常用模块一collections模块时间模块random模块os模块sys模块序列化模块re模块  常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。&nb... 查看详情

第五章内容小结(代码片段)

在第五章,我们学习了树这个数据结构,并且学习了其定义、遍历等操作,最后还学习了哈夫曼树。一.树的遍历树的遍历操作有以下三种:1。先序遍历(根,左孩子,右孩子)voidPreOrderTravel(nodet[],intx)cout<<t[x].name<<"";if(... 查看详情

《学习之道》第五章认识拖延

  现实就是,我们拖延的,往往是让我们感到不安的事情。  医学成像研究显示,恐惧数学的人会回避数学,因为仅是想到数学就让他们畏缩了。  当他们冥思苦想地对付数学时,大脑中的痛觉中心就会被激活。  值得... 查看详情

《算法》第五章部分程序part1(代码片段)

?书中第五章部分程序,包括在加上自己补充的代码,字母表类,字符串低位优先排序(桶排)●字母表类1packagepackage01;23importedu.princeton.cs.algs4.StdOut;45publicclassclass0167publicstaticfinalclass01BINARY=newclass01("01");89publicstaticfinalclass01 查看详情

python第五章函数(代码片段)

第五章函数5.1三元运算/三目运算v=前面if条件语句else后面#如果条件成立,"前面"赋值给v,否则后面赋值给v.v=aifa>belseb#取a和b中值较大的赋值给v#让用户输入值,如果值是整数,则转换成整数,否则赋值为Nonedata=input('请... 查看详情

节习题答案(第五章)(代码片段)

以下答案仅供参考,有错欢迎留言。Chapter5:TheRenderingPipeline1.Constructthevertexandindexlistofapyramid(金字塔),asshowninFigure5.35(即下图).Vertex  pyramid[5]=v0,v1,v2,v3,v4,v5;//注意要从面的out 查看详情