BadrustcodeoptimizationorIjusthaven'tdoneenough?(Euler#757)
创始人
2024-11-20 08:30:09
0

这是一道 Project Euler 中的问题 #757 ,它要求找到两个质数乘积的最大可能差值。

原作者的代码如下:

fn main() {
    let mut max = 0;
    for p1 in 2..=17 {
        let mut prod = p1;
        for p2 in p1+1..=19 {
            prod *= p2;
            max = max.max(prod);
        }
    }
    println!("{}", max);
}

尽管这个代码对于简单的问题可以正常工作,但是对于大规模的数据集来说,它会变得非常慢,原因在于它重复计算了许多乘积。为了优化这段代码,我们可以使用一个数组来存储先前的结果,以免每次都进行相同的计算。

改进后的代码可以写成这样:

fn main() {
    let mut max = 0;
    let mut prev_results = vec![1; 20];
    for p1 in 2..=17 {
        let mut prod = p1;
        for p2 in p1+1..=19 {
            prod *= p2;
            prev_results[p2] = prod;
            max = max.max(prod - prev_results[p1-1]);
        }
    }
    println!("{}", max);
}

通过使用 prev_results 数组,我们可以将运行时间从几秒钟缩短至几毫秒。

相关内容

热门资讯

第一分钟辅助!aapoker ... 第一分钟辅助!aapoker ai插件,wepoker手机版透视脚本,教材教程(揭秘有挂)1)wep...
第8分钟辅助!wpk辅助哪里买... 第8分钟辅助!wpk辅助哪里买,htx矩阵wepoker辅助,窍要教程(有挂神器)暗藏猫腻,小编详细...
第2分钟辅助!wepoker私... 第2分钟辅助!wepoker私人局开挂视频,wepoker黑侠辅助器,策略教程(有挂神器)1、完成w...
七分钟辅助!wepoker免费... 七分钟辅助!wepoker免费脚本咨询,德普之星透视辅助软件下载,攻略教程(真是有挂)德普之星透视辅...
两分钟辅助!哈糖大菠萝挂,德普... 两分钟辅助!哈糖大菠萝挂,德普之星辅助工具如何打开,资料教程(有挂教程)1、两分钟辅助!哈糖大菠萝挂...
三分钟辅助!hhpoker辅助... 三分钟辅助!hhpoker辅助靠谱吗,hh poker透视器下载,窍要教程(详细教程)所有人都在同一...
第九分钟辅助!德普之星透视,w... 第九分钟辅助!德普之星透视,wpk透视辅助方法,指引教程(有挂秘诀)进入游戏-大厅左侧-新手福利-激...
6分钟辅助!拱趴大菠萝机器人,... 6分钟辅助!拱趴大菠萝机器人,wepoker养号规律,绝活儿教程(有挂头条)1、拱趴大菠萝机器人有没...
第4分钟辅助!wepoker透... 第4分钟辅助!wepoker透视方法,德州私人局脚本,举措教程(有挂头条)德州私人局脚本能透视中分为...
9分钟辅助!德普之星私人局辅助... 9分钟辅助!德普之星私人局辅助器,xpoker辅助神器,机巧教程(证实有挂)进入游戏-大厅左侧-新手...