定和的n个正整数 求最大积

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定和的n个正整数 求最大积相关的知识,希望对你有一定的参考价值。

n个正整数的和为定值m,求该n个数的最大积,需要给出证明。
例如:m=10,n=3, 分为 3 3 4 ,最大积为3*3*4=36。
关键是如何证明。
在线等。。

x1+x2+x3+x4+...+xn=m
由均值不等式,x1x2x3...xn<=((x1+x2+x3+x4+...+xn)/n)^n=(m/n)^n
等号成立当且仅当x1=x2=x3=...=xn=m/n
但是,要求都是整数,上面的条件不一定成立。

但是x1,x2,x3...xn越接近乘积越大,证明如下:
我们考虑这样的一组 x1,x2,x3,...,xn:其中有xi,xj满足xi-xj>=2;
令xi--->xi-1,xj--->xj+1
那么乘积x1x2...xixj...xn < x1x2...(xi-1)(xj+1)...xn(比较一下xixj和(xi-1)(xj+1)就知道)

也就说,经过一次这样的操作之后,数组的和不变,乘积增大。

那么我们可以预见,有限步之后,达到最大乘积时,x1x2x3...xn各整数两两之差为0或1。

简而言之,当x1,x2,x3,...,xn只由k和k+1两种数字组成时乘积最大。
参考技术A a=[m/n],b=m/n-[m/n], []表示取整
则n个数为nb个a+1 n(1-b)个a时积最大
首先nb(a+1)+n(1-b)a=nb+na=m符合要求

若保持和不变 变换其中两个数x,y为x-i y+i(x<=y)
则有3种情况
1、x=y=a 显然a^2>(a+i)(a-i)
2、x=y=a+1 也有(a+1)^2>(a+1+i)(a+1-i)
3、x=a,y=a+1 容易证明a(a+1)>(a-i)(a+1+i)
故当N个数为nb个a+1 n(1-b)个a时 无论怎么改变这N个数 只要总和不变
积就会减少
故有当n个数为nb个a+1 n(1-b)个a时积最大
参考技术B 我估计应该是取抛物线的最高点,不好意思,时间久了,公式都忘了。希望能简单的帮上你。

JAVA求四个正整数,逆序数1234。这些求余怎么求啊!

用求余数的方法,求一个四位正整数的逆序数的Java程序如下:

import java.util.Scanner;
public class AA 
 public static void main(String[] args) 
  Scanner sc=new Scanner(System.in);
  System.out.print("请输入一个四位正整数:");
  int n=sc.nextInt();
  if(n<1000 || n>9999)
   System.out.println("您输入的不是一个四位正整数!");
  else
   int a,b,c,d,result;
   a=n/1000;//取四位正整数的千位数
   b=n/100%10;//取四位正整数的百位数
   c=n/10%10;//取四位正整数的十位数
   d=n%10;////取四位正整数的个位数
   result=d*1000+c*100+b*10+a;
   System.out.println("四位正整数"+n+"的逆序数为:"+result);
  
 

运行结果:

请输入一个四位正整数:1234
四位正整数1234的逆序数为:4321

追问

能解释一下什么意思吗?

追答

就是用求余数的方法,求一个四位正整数的逆序数,比如: 1234是一个四位数,它的逆序数就是4321
要求逆序数,必须把这个四位数的各个位上的数取出来,方法就是用这个数除以它的位权再用10取余数,比如:取四位正整数的十位数字 c=n/10%10;然后按逆序重新生成一个数例如:result=d*1000+c*100+b*10+a;就是这个四位正整数例如:1234的逆序数例如:4321了.

追问

四位数各位上的数除?

追答

四位数除以它的位的权重,再用10取余数,得到这个四位数各个位上的数字.
所谓位的权重,就是这一位所代表的大小,比如:十位代表10,百位代表100.

参考技术A 没看明白,问题是什么意思呀?。。。。追问

不会求余数,求详细步骤

参考技术B 百度一下你就知道咯 参考技术C 百度搜一下

以上是关于定和的n个正整数 求最大积的主要内容,如果未能解决你的问题,请参考以下文章

给定 3 个正整数,求最大步数将它们减少到 0

C语言编程:输入两个正整数m和n,求它们的最大公约数。

C语言编程:输入两个正整数m和n,求它们的最大公约数。

NYOJ 90 —— 求n划分为若干个正整数的划分个数

求GCD和LCM,即指求最大公约数和最小公倍数。

大神求解,C语言问题