[程序员考试中的一道题]是什么语言我不懂,不过 传值调用是指把实在参数的地址传递给相应的形式参数,子程序通过这种传值形参可传回结果的值和存放结果的地址;引用调用是指把实在参数的名传递给相应的...+阅读
求一道java程序设计题整数划分
这个可以用递归来实现。。。。。代码如下。。。还是想了很久弄出来的。。。。已经测试了的。。。希望能帮到你。。。
import java.util.Scanner;
public class Test {
public static void huafenD(int oldData,int j, int n,StringBuffer result){
StringBuffer r = new StringBuffer(result);
for( int i = j;i<=n;i++){
if(i==n&i!=oldData) {
result.append(i);
System.out.println(result.toString());
result = new StringBuffer(r);
}
else if(i!=oldData){
result.append(i);
result.append("+");
huafenD(oldData,i,n-i,result);
result = new StringBuffer(r);
}
}
}
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一个整数(1-10)");
int data = in.nextInt();
while(data<1||data>10){
System.out.println("您的输入 不符合要求,请重新输入");
data = in.nextInt();
}
if(data==1)System.out.println("无需划分");
else {
StringBuffer sb = new StringBuffer();
huafenD(data,1,data,sb);
}
}
}
运行结果示例:
请输入一个整数(1-10)
6
1+1+1+1+1+1
1+1+1+1+2
1+1+1+3
1+1+2+2
1+1+4
1+2+3
1+5
2+2+2
2+4
3+3
如何用excel建整数规划模型求解
整数规62616964757a686964616fe58685e5aeb931333337393635划模型Excel 求解的简化方法 [摘 要] 整数规划是一类典型的线性规划问题。对于这类问题, 运筹学中已有解决的方法,但比较繁琐。本文利用excel 软件的“规 划求解”工具,对整数规划问题求解的模型建立和求解作了较详尽 的论述。 ء [关键词] 整数规划问题 excel 规划求解 ء 整数规划是线性规划中的一类典型问题,应用于解决生产实际的 许多问题,有着广泛的应用前景。对于这类问题,运筹学中已有解 决方法,如分枝定界法、穷举法等,但很繁琐。也有借助于matlab、 mathematics 和 lingo 等软件求解,但专业性太强。相比之下,excel 功能强大,汉化水平高,菜单操作方便,拥有大量的函数、公式等, 不需专门购买和安装。为解决整数规划问题提供了一种很好的工 具。
本文结合实例说明利用在excel 软件中“规划求解”工具,建 立数学模型并求解整数规划问题。 ء 1 “规划求解”工具 ء microsoft excel 的“规划求解”工具取自于leon lasdon 和allan waren 共同开发的非线性最优化代码。“规划求解”是execl 中的一 个加载宏。 ء 1.1 安装 “规划求解” ء 加载宏是excel 的一个可选安装模块,在安装microsoft excel 时,系统默认的安装方式不会安装宏程序,只有在选择“完全/定制安装”时才可选择安装这个模块。如果采用“典型安装”,则“规 划求解”工具没有安装 ,就必须重新启动office 安装程序并且选 择excel 选项,在加载宏区段中选择 “规划求解”,然后进行安装。 ء 1.2 加载“规划求解” ء 安装了“规划求解”之后,在“工具”菜单下可能仍然找不到“规 划求解”,此时您可以选择“工具/加载宏”,在打开的“加载宏” 对话框中选中 “规划求解”复选框,确定后,就可以将“规划求 解”命令添加到“工具”菜单栏中了。
ء 2 整数规划的一般模型 ء 整数规划是线性规划的特殊情形,它的变量x 仅取整数,其数学 表达式有标准式、缩简形式、向量式、矩阵式等多种表现形式。本 文只讨论标准形式,具体表达式如图1。 ء 3 实例及求解过程 ء 例1:某工厂有资金13 万元用于购置新机器,可在两种机器中任 意选购,已知机器a 每台购置费2 万元,机器b 每台购置费4 万元。 该厂维修能力只能维修7 台机器b;若维修机器a,1 台折算2 台机 器b。购置1 台a 可增加年产值6 万元,1 台b 可增加年产值4 万 元,问应购置a 和b 各多少台才能使年产值增加最多? ء 第一步,建立数学模型(如图2)。第二步,建立整数规划问题的 电子表格模型(如图3)。 ء 第三步,选定可变单元格和目标单元格,输入目标函数和约束条 件。
选定可变单元格,用它来记录最终的最优解。将单元格b6 和 c6 作为可变单元格(分别代表x1,x2)。在其中输入任意初值,不 妨都输入0。确定目标单元格,用它来记录目标函数值。当问题求 解结束时,它将显示最优的目标函数值。选定d5 作为目标单元格(代 表变量z),其中输入目标函数公式为 d5=sumproduct(b5:c5,b6:c6),含义是d5=b5*b6+c5*c6。输入约 束条件。选定单元格d3 和d4,依次输入约束条件。利用sumproduct 函数,分别输入d3=sumproduct(b2:c2,b6:c6), d4=sumproduct(b3:c3,b6:c6),见图3。 ء 第五步,设置规划求解参数。单击菜单栏“工具”中的“规划求 解”命令,弹出“规划求解参数”的对话框后,在设置的目标单元 格中输入“$d$5”,可变单元格中输入“$b$6:$c$6”。设置约束条 件,单击“添加”按钮,出现“添加约束”对话框,在单元格引用 中输入“$d$3:$d$4”约束值输入“$f$3:$f$4”。
对于变量的整数 值限制,需要再次输入$b$6:$c$6,约束值为“int 整数”。如下图 4、图5 所示: ء 第六步,计算得出规划求解结果。完成了参数的设置后,单击“选 项”按钮,弹出“规划求解选项”,见图6,勾选“假定非负”和“采 用线性模型”,单击“确定”退出。单击“求解”按键,就可得到 相应的结果,见图7。图中的单元格b6 和c6 里的数据就是得到的 最优解。d5 中的数据是z 最大的值,即z=22 万元。
整数分划问题 pascal!
递归+去重
程序如下:
program test;
var
n,total:integer;
num:array[1..400]of integer;
procedure print(x:integer);
var
i:integer;
begin
inc(total);
for i:=1 to x do
write(num[i],' ');
writeln;
end;
function big(x,n:integer):boolean; //去重
var
i:integer;
begin
big:=true;
for i:=1 to x do
if num[x]>n then
begin
big:=false;
exit;
end;
end;
procedure try(m,x:integer);
var
i:integer;
begin
if m=0 then print(x-1)
else
for i:=m downto 1 do
begin
if big(x-1,i) then begin
num[x]:=i;
try(m-i,x+1);
end;
end;
end;
begin
total:=0;
readln(n);
fillchar(num,sizeof(num),0);
try(n,1);
writeln('Const=',total);
end.
有谁会整数划分算法的啊给我具体讲讲吧
整数划分问题是将一个正整数n拆成一组数连加并等于n的形式,且这组数中的最大加数不大于n。 如6的整数划分为 6 5 + 1 4 + 2, 4 + 1 + 1 3 + 3, 3 + 2 + 1, 3 + 1 + 1 + 1 2 + 2 + 2, 2 + 2 + 1 + 1, 2 + 1 + 1 + 1 + 1 1 + 1 + 1 + 1 + 1 + 1 共11种。下面说明一种通过递归方法得到一个正整数的划分数。 递归函数的声明为 int split(int n, int m);其中n为要划分的正整数,m是划分中的最大加数(当m >n时,最大加数为n), 1 当n = 1或m = 1时,split的值为1,可根据上例看出,只有一个划分1 或 1 + 1 + 1 + 1 + 1 + 1 可用程序表示为if(n == 1 || m == 1) return 1; 2 下面看一看m 和 n的关系。它们有三种关系(1) m >n 在整数划分中实际上最大加数不能大于n,因此在这种情况可以等价为split(n, n); 可用程序表示为if(m >n) return split(n, n); (2) m = n 这种情况可用递归表示为split(n, m - 1) + 1,从以上例子中可以看出,就是最大加 数为6和小于6的划分之和 用程序表示为if(m == n) return (split(n, m - 1) + 1); (3) m
从上例可以看出,设m = 4,那split(6, 4)的值是最大加数小于4划分数和整数2的划分数的和。 因此,split(n, m)可表示为split(n, m - 1) + split(n - m, m) 根据以上描述,可得源程序如下:#includeint split(int n, int m) { if(nm) return (split(n, m - 1) + split((n - m), m)); }int main(){ printf("12的划分数: %d", split(12, 12)); return 0;}将正整数划分成连续的正整数之和如15可以划分成4种连续整数相加的形式:157 84 5 61 2 3 4 5 首先考虑一般的形式,设n为被划分的正整数,x为划分后最小的整数,如果n有一种划分,那么结果就是x,如果有两种划分,就是x和x x + 1, 如果有m种划分,就是 x 、x x + 1 、 x x + 1 x + 2 、... 、x x + 1 x + 2 ... x + m - 1将每一个结果相加得到一个公式(i * x + i * (i - 1) / 2) = n,i为当前划分后相加的正整数个数。
满足条件的划分就是使x为正整数的所有情况。如上例,当i = 1时,即划分成一个正整数时,x = 15, 当i = 2时, x = 7。当x = 3时,x = 4, 当x = 4时,4/9,不是正整数,因此,15不可能划分成4个正整数相加。当x = 5时,x = 1。 这里还有一个问题,这个i的最大值是多少?不过有一点可以肯定,它一定比n小。我们可以做一个假设,假设n可以拆成最小值为1的划分,如上例中的1 2 3 4 5。这是n的最大数目的划分。如果不满足这个假设,那么 i 一定比这个划分中的正整数个数小。因此可以得到这样一个公式i * (i + 1) / 2
延伸阅读:
一道数学中考压轴题解:(1)若四边形PEMF为矩形,则∠OMB是直角 在矩形OACB中,点M是AC的中点,所以三角形OMB必是等腰直角三角形, 所以三角形OMB的中垂线=OB的一半, 因为OA=3,所以OB=6, 所以点B的坐标是(6,0) (...
问一道旅游地理题20天,时间好长哦,上丽江大理云南,西双版纳,香格里拉。 1。到云南,游世博园,名族园,享受云南多民族的各种不同的习俗3-5天,基本是薄外套,旅游鞋。 2。到丽江,游古镇,束河,大研,玉龙雪山等...
一道初三数学综合题 第一题不难:依题意得:当y=x+4与y轴相交时得: Y=0+4 所以得Y=4,得A(0,4) 当y=x+4与x轴相交时得: 0=x+4 所以得x= - 4, 得B(- 4,0) 第二题: 因为OA=4,OB=4 所以角ABO=角BAO=45度 因...
求一道初三数学综合题在正方形ABCD内有一点P,PA+PB+PC的最小值为√2+√6,求正方形的边长 能够使PA+PB+PC最小的点P必位于△ABC的费马点上。 此时∠APB=∠CPB=∠BPA=120° ∵BC=BA,BP=BP,∠CPB=∠AP...
一道初二数学综合题正确 1,C点在AB上时,以AB线为X轴建立坐标系,假设A点坐标(0,0)则B点(a,0)设c点坐标为(x,0) 因为CAD和CBE为等腰直角三角形,且角CAD和角CBE为直角,则AD=AC,BE=BC,由此不难得出D点坐标为(0,...
有一道人力资源的案例分析题是关于薪酬设计的首先您得了解员工离职的真正原因真的只是薪水问题吗?有没有对本企业的企业文化、人力资源体系等多方面进行诊断呢?有可能是人本文化做得不够、也可能是激励做得不够,也可能是管...
一道英语阅读题1.please give a title to the story. __________A clever __lamd_______________ 2.what do you think of the lamb? ____________She is very clever____________________...
求程序员个人生涯规划做java的求程序员个人生涯规划做java的,C程序员职业规划:从我个人角度来讲,JAVA得发展前途我大致觉得有以下几个 1)架构师,这个肯定不是青春饭了。当然,这个职业要求你不断学习的,你应该时...
一道地理高考题一道地理高考题,高考地理题自然地理:第一题【答案】:全年高温(各月均温都在20摄氏度以上);全年降水量大(年降水量1600毫米以上);5—10月(或者6—9月)降水较丰沛(为雨季);11月—次年4月(10月...