杭电1239

部署运行你感兴趣的模型镜像

这是一道极其简单的搜索题目,不过简单归简单,对于刚入门的人来说,再简单的搜不是那么简单。所以这里还是写一下,希望可以帮助别人。

题目的大意是:

na.给定整数m,a,b(4< m <= 100000 and

  1<= a <= b <= 1000)

nb.需要找到两个数(不妨设为p,q)满足以下条件:

      p,q均为质数;

    p*q<=m;

    a/b <= p/q <= 1;

c.输出所有满足以上条件的p,q中乘积最大的一对p,q。

典型的想法是

从所有可能的p,q中寻找满足条件的一对

n2.p,q的要求

p,q均为质数,且p<=q<=100000;

n3.按上述思想流程应为:

a.从1—100000中搜出质数

b.两层循环,试遍所有的组合(p,q可能相等)

c.每种组合去判断是否符合条件,如是,将p*q与当前最大值比较,判断,保存。

不过这样肯定是会超时的,因为p,q的范围很大,那么我们自然而然就会想到我们应该将范围适当的压缩,也算是剪枝吧。

以下两种方法:

(1)

p,q的范围其实可在2—50000(why?)
然而,这是最小的范围吗?
考虑大于10000的某个质数,不妨设为Q,另一个质数为P,则:
如果P<10,P/Q<0.001
如果P>10,P*Q>100000
而考虑到a,b的取值范围(1<=a<=b<=1000)
可知min(a/b)=0.001
同时,要求:p*q<=m<=100000
所以无论如何质数都不能超过10000
经过上面的数据的压缩,我们就可以直接来做了,首先找出10000以内的质数,应该不会超过2000,那么在这2000质数中采用暴力方法,一个一个搜索,最后求得最大的p*q;
(2),我们知道对于p<=100000,q<=100000;但是p*q<=100000,这就直接让我们想到了开方,就是p,q必有一个大于sqrt(100000),另一个小于sqrt(100000),那么这下范围就收缩了很多,再采用暴力方法来找出满足题意的p和q。
我用的是第二种方法,下面附上一个代码:
#include<iostream>
using namespace std;
#include<math.h>
int main()
{
    int m,a,b,p,q,j,max;
    int p1,q1;
    double k1,k2;
    int leap1,leap2;
    while(cin>>m>>a>>b,m||a||b)
    {
        leap1=0;
        leap2=0;
          max=j=0;
          k1=((double)a)/b;
          for(p=sqrt((double)m);p>=2;p--)
          {
              for(int i=2;i<=sqrt((double)p);i++)
              {
                   if(p%i==0)
                   {
                       leap1=1;
                       break;
                   }
                   else leap1=0;

              }
              if(leap1==0)
              { 
          for(q=p;q<=m/p;q++)
          {
              for(int t=2;t<=sqrt((double)q);t++)
              {
                 if(q%t==0)
                 {
                     leap2=1;
                     break;
                 }
                 else leap2=0;
              }
                 if(leap2==0)
                 {
                     k2=((double)p)/q;
                     if((k1<=k2)&&(k2<=1))
                     {
                         if(p*q>max)
                         {
                             p1=p;
                             q1=q;
                             max=p*q;
                         }
                     }
                 }

          }


              }

          }
          cout<<p1<<" "<<q1<<endl;
    }
    return 0;

}

您可能感兴趣的与本文相关的镜像

Dify

Dify

AI应用
Agent编排

Dify 是一款开源的大语言模型(LLM)应用开发平台,它结合了 后端即服务(Backend as a Service) 和LLMOps 的理念,让开发者能快速、高效地构建和部署生产级的生成式AI应用。 它提供了包含模型兼容支持、Prompt 编排界面、RAG 引擎、Agent 框架、工作流编排等核心技术栈,并且提供了易用的界面和API,让技术和非技术人员都能参与到AI应用的开发过程中

内容概要:本文介绍了一个基于冠豪猪优化算法(CPO)的无人机三维路径规划项目,利用Python实现了在复杂三维环境中为无人机规划安全、高效、低能耗飞行路径的完整解决方案。项目涵盖空间环境建模、无人机动力学约束、路径编码、多目标代价函数设计以及CPO算法的核心实现。通过体素网格建模、动态障碍物处理、路径平滑技术和多约束融合机制,系统能够在高维、密集障碍环境下快速搜索出满足飞行可行性、安全性与能效最优的路径,并支持在线重规划以适应动态环境变化。文中还提供了关键模块的代码示例,包括环境建模、路径评估和CPO优化流程。; 适合人群:具备一定Python编程基础和优化算法基础知识,从事无人机、智能机器人、路径规划或智能优化算法研究的相关科研人员与工程技术人员,尤其适合研究生及有一定工作经验的研发工程师。; 使用场景及目标:①应用于复杂三维环境下的无人机自主导航与避障;②研究智能优化算法(如CPO)在路径规划中的实际部署与性能优化;③实现多目标(路径最短、能耗最低、安全性最高)耦合条件下的工程化路径求解;④构建可扩展的智能无人系统决策框架。; 阅读建议:建议结合文中模型架构与代码示例进行实践运行,重点关注目标函数设计、CPO算法改进策略与约束处理机制,宜在仿真环境中测试不同场景以深入理解算法行为与系统鲁棒性。
在科技快速演进的时代背景下,移动终端性能持续提升,用户对移动应用的功能需求日益增长。增强现实、虚拟现实、机器人导航、自动驾驶辅助、手势识别、物体检测与距离测量等前沿技术正成为研究与应用的热点。作为支撑这些技术的核心,双目视觉系统通过模仿人类双眼的成像机制,同步获取两路图像数据,并借助图像处理与立体匹配算法提取场景深度信息,进而生成点云并实现三维重建。这一技术体系对提高移动终端的智能化程度及优化人机交互体验具有关键作用。 双目视觉系统需对同步采集的两路视频流进行严格的时间同步与空间校正,确保图像在时空维度上精确对齐,这是后续深度计算与立体匹配的基础。立体匹配旨在建立两幅图像中对应特征点的关联,通常依赖复杂且高效的计算算法以满足实时处理的要求。点云生成则是将匹配后的特征点转换为三维空间坐标集合,以表征物体的立体结构;其质量直接取决于图像处理效率与匹配算法的精度。三维重建基于点云数据,运用计算机图形学方法构建物体或场景的三维模型,该技术在增强现实与虚拟现实等领域尤为重要,能够为用户创造高度沉浸的交互环境。 双目视觉技术已广泛应用于多个领域:在增强现实与虚拟现实中,它可提升场景的真实感与沉浸感;在机器人导航与自动驾驶辅助系统中,能实时感知环境并完成距离测量,为路径规划与决策提供依据;在手势识别与物体检测方面,可精准捕捉用户动作与物体位置,推动人机交互设计与智能识别系统的发展。此外,结合深度计算与点云技术,双目系统在精确距离测量方面展现出显著潜力,能为多样化的应用场景提供可靠数据支持。 综上所述,双目视觉技术在图像处理、深度计算、立体匹配、点云生成及三维重建等环节均扮演着不可或缺的角色。其应用跨越多个科技前沿领域,不仅推动了移动设备智能化的发展,也为丰富交互体验提供了坚实的技术基础。随着相关算法的持续优化与硬件性能的不断提升,未来双目视觉技术有望在各类智能系统中实现更广泛、更深层次的应用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值