编程题-卡拉兹(Callatz)猜想-21.01.15

背景:

   对任何⼀个⾃然数n,如果它是偶数,那么把它砍掉⼀半;
   如果它是奇数,那么把(3n+1)砍掉⼀半。这样⼀直反复砍下去,
   最后⼀定在某⼀步得到n=1。
   卡拉兹在1950年的世界数学家⼤会上公布了这个猜想,
   传说当时耶鲁⼤学师⽣⻬动员,
   拼命想证明这个貌似很傻很天真的命题,结果闹得学⽣们⽆⼼学业,
   ⼀⼼只证(3n+1),以⾄于有⼈说这是⼀个阴谋,
   卡拉兹是在蓄意延缓美国数学界教学与科研的进展……

题目:

  我们今天的题⽬不是证明卡拉兹猜想,⽽是对给定的任⼀
  不超过1000的正整数n,简单地数⼀下,需要多少步(砍⼏下)
  才能得到n=1?

输入格式:

每个测试输⼊包含1个测试⽤例,即给出⾃然数n的值。

输出格式:

输出从n计算到1需要的步数。       

输入样例:

请输出一个自然数n:3

输出样例:

输出从n计算到1需要的步数: 5

完整代码:

#include <iostream>

using namespace std;

int main()
{
    int n, n_count=0;

    cout << "请输出一个自然数n:";
    cin >> n;

    while(n != 1){
        if(n % 2 ==0){
            n = n/2;
        }else{
            n = (3 * n + 1)/2;
        }
        n_count++;
    }
    cout << "输出从n计算到1需要的步数: " << n_count <<endl;

    return 0;

}

VRP(Vehicle Routing Problem)是一种常见的物流配送问题,目标是在满足顾客需求的前提下,最小化总的运输成本或者最大化总的服务满意度。 在解决VRP实际问题时,可以使用MATLAB编写代码来进行建模和求解。以下是一个简单的示例: 首先,我们需要定义问题的输入,包括顾客的位置坐标、需求量、车辆的位置和容量限制等。可以使用矩阵或者结构体来存储这些信息。 然后,我们可以使用基于图论的算法来构建路线网络,例如使用最近邻法或者克拉法等。通过计算顾客之间的距离或者行驶时间,构建一个完全图。 接下来,我们可以使用启发式算法来求解VRP,例如贪婪算法、模拟退火算法或者遗传算法等。这些算法可以通过迭代的方式来逐步优化路线,使得总的成本最小化或者总的满意度最大化。 在求解过程中,我们还需要考虑一些约束条件,例如车辆的容量限制、时间窗口限制等。可以通过添加约束条件到优化问题中,以确保生成的路线满足实际需求。 最后,我们可以使用MATLAB的优化工具箱中的函数来求解VRP问题。例如,可以使用linprog函数来求解线性规划问题,或者使用intlinprog函数来求解整数线性规划问题。 综上所述,通过使用MATLAB编写代码来建模和求解VRP问题,我们可以在满足顾客需求的前提下,寻找到一组最优的路线,从而最小化运输成本或者最大化服务满意度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值