① 数学题(编程题)询问 朋友五个问题,找到他生日哪一天
你说的生日是指(某月)的几号,因此必然是小于31的数字,每组数字的第一帆行键个带旦数只要是2^n即可满足要求。
第一组:1、 3、 5 、7 、……
第二组:2、 3 、 6、 7、……
第三组:4、 5、 6、 7、12、 13……、
第四组态巧:8、 9、 10、 11、 12、……
第五组:16、 17、 18、 ……
总之,按照二进制码的位数,每一位对应一组即可。
② 数学建模各类模型的例题及编程
例:给出美国人口从1790年到1990年间的人口如表1(每10年为一个间隔),请估计出美国2010年的人口。
表1 美国人口统计数据
年 份 1790 1800 1810 1820 1830 1840 1850
人口(×106) 3.9 5.3 7.2 9.6 12.9 17.1 23.2
年 份 1860 1870 1880 1890 1900 1910 1920
人口(×106) 31.4 38.6 50.2 62.9 76.0 92.0 106.5
年 份 1930 1940 1950 1960 1970 1980
人口(×106) 123.2 131.7 150.7 179.3 204.0 226.5
建模方法:
可以发现美国人口的变化规律曲线近似为一条指数函数曲线,因此我们假设美国的人口满足函数关系x=f(t), f(t)=ea+bt,a,b为待定常数,大肆根滚森轿据最小二乘拟春拍合的原理,a,b是函数 的最小值点。其中xi是ti时刻美国的人口数。利用MATLAB软件中的曲线拟合程序“curvefit”,编制的程序如下:
指数函数的函数M——文件
function f=fun1(a,t)
f=exp(a(1)*t+a(2));
用最小二乘拟合求上述函数中待定常数,以及检验拟合效果的图形绘制程序
t=1790:10:1990;
x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 ...
92 106.5 123.2 131.7 150.7 179.3 204 226.5 251.4];
plot(t,x,'*',t,x);
a0=[0.001,1];
a=curvefit('fun1',a0,t,x)
ti=1790:5:2020;
xi=fun1(a,ti);
hold on
plot(ti,xi);
t1=2010;
x1=fun1(a,t1)
hold off
③ 编写程序,计算1到100之间所有质数的和(数学题)
1、这是C++版仿答本的:
#include<iostream>
using namespace std;
int F(int &a) //判断是否是素山大昌数,是返回本身,不是返回0;
{
int i=2;
for(i;i<a;i++)
if(a%i==0)
{
return 0;
break;
}
return a;
}
void main()
{
int sum=0;
for(int i=2;i<=100;i++)
sum+=F(i);
cout<<"素数何为:"<<sum<<endl;
}
2、以下是C语言版本的:
#include<stdio.h>
int F(int &a) /逗扒/判断是否是素数,是返回本身,不是返回0;
{
int i=2;
for(i;i<a;i++)
if(a%i==0)
{
return 0;
break;
}
return a;
}
void main()
{
int sum=0;
for(int i=2;i<=100;i++)
sum+=F(i);
printf("素数何为:%d\n",sum);
}
④ c语言程序设计Unit1-10 x3+y3,求c++编程
由老枝培计算得:x^3+y^3=a^3-3/2*(a^2-b)*a
#include "stdio.h"
void main()
{
int a,b;
while(scanf("侍唯%d%d",&a,&b)!=EOF)
{
printf("%d\n"搭大,a*a*a-(a*a-b)*a*3/2);
}
}
⑤ 帮助解决数学建模(用计算机编程)小题目 重谢
第1题
model:
sets:
m/1..10/森滑蔽此州:x,B,C;
endsets
data:
B=10 12 15 8 7 9 8 14 16 18;
C=3.6 4 5 2.2 2 3 2.5 4.8 5.8 6.1;
enddata
max=@sum(m(i):C(i)*x(i));
@sum(m(i):B(i)*x(i))<让闭72;
x(1)+x(2)+x(3)<2;
x(4)+x(5)>1;
x(6)+x(7)>1;
x(8)+x(9)+x(10)<2;
@for(m(i):@bin(x(i)));
end
⑥ 1、编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升打印出分水步骤。
#include"stdio.h"
void Move(int *a,int *b,int aMax,int bMax)
{
if(aMax>bMax)
{
if((*a+*b)>bMax)
{ *a=*a-(bMax-*b);
*b=*b+bMax-*b;
}
else
{
*b=*a+*b;
*a=*a-*a;
}
}
else
{
*b=*b+*a;
*a=0;
}
}
int check(int aMax,int bMax,int cMax)
{
if(aMax>bMax&bMax>cMax)
return 0;
else
return 1;
}
int main()
{
int a;
int b;
int c;
int aMax,bMax,cMax;
//aMax=40;bMax=14;cMax=8;
label3:
printf("待分配水量杯A:");
scanf("%d",&aMax);
printf("量杯B容量:");
scanf("%d",&bMax);
printf("量杯C容量:");
scanf("%d",&cMax);
if(check(aMax,bMax,cMax))
{
printf("容量输入有误!请重新输入.\n");
goto label3;
}
a=aMax;
b=0;
c=0;
int m=0;
while(m<100){
Move(&a,&b,aMax,bMax);
printf("A->B:%d %d %d\n",a,b,c);
m++;
if(b==aMax/2&a==aMax/2) goto label2;
Move(&b,&c,bMax,cMax);
printf("B->C:%d %d %d\n",a,b,c);
m++;
if(b==aMax/2&a==aMax/2) goto label2;
label1:
Move(&c,&a,cMax,aMax);
printf("C->A:%d %d %d\n",a,b,c);
m++;
if(b==aMax/2&a==aMax/2) goto label2;
Move(&b,&c,bMax,cMax);
printf("B->C:%d %d %d\n",a,b,c);
m++;
if(b==aMax/2&a==aMax/2) goto label2;
if(c==cMax) goto label1;
}
label2:
printf("共需%d步\n",m);
printf("%d %d %d\n",a,b,c);
return 0;
}
⑦ C++ 编程习题
1、main()
{
int score[30],i,count,all;
count=0;all=0;
for(i=0;i<30;i++)
{
cin>>score[i];//输入成绩
all+=score[i];//统计总分
if(score[i]<60)//如闹统计不及格
count++;
}
cout<<"平均成绩为:"<<all/雀携30<<endl;
cout<<顷橡伏"不及格人数为:"<<count<<endl;
}
2、
main()
{
int f[20],i;
f[0]=0;
f[1]=0;
f[2]=2;
f[3]=5;
for(i=4;i<20;i++)
{
f[i]=f[i-1]+f[i-2]+f[i-3]+f[i-4];
cout<<f[i]<<endl;
}
}
⑧ C++编程解决数学问题,求教大神!
#include<iostream>
usingnamespacestd;
intmain()
{
intsum,a,b;
cin>>sum>>a>>b;
inty=(sum-a-2*b)/(a+1);
intx=a*y+b;
cout<<x<<""<<y<<endl;
return0;
}
⑨ 一道C++的编程数学题
这可以直接套公式算啊,用不着一个个去试,干嘛要写程序......
首先 N>= M*K
先确定每个 box 里面放几个,我们安排 N 个位置,1~K 是 box 1的,K+1 ~ 2K 是 box2 的....这样前李源 M*K 个位置分配给了 M 个 box 的固定位置;
然后,剩闹差余 N-M*K 个位置,我们把 M-1 个“隔板”和这些“位置”一同考虑,在 X = (N-M*K) + (M-1) 个空白上,任选 M-1 个空白安排“隔板”,其余安排“位置”,这样共有
C( N-M*k + M-1, M-1) 种组合.....
以上, 第一个" 隔板“前面的“位置”是 box1 的,它后面第二个“隔板”前面的“位置”是box2 的..... 最后一个”隔板“后面的“位置”是 boxM 的
最后,我们把所有 N 个小球做个全排列,P(N, N), 然哪弯态后依次填入上面的划分,就 ok 了
这样共有: P(N, N) * C(N-M*K + M-1, M-1) 种不同的放置方法.....
可能就不用写程序去硬试了吧.....
computer science 的核心是数学,只有无能的程序员才会不顾算法去穷举.....
⑩ 编程解决简单的数学问题
3 * x + 7 * y + z = 3.15.
4 * x + 10 * y + z = 4.2.
得到 x + 3 * y = 4.2 - 3.15 = 1.05.
3 * x + 9 * y = 3.15.
得到 x + y + z = 1.05.
编程我觉得应该用矩阵,能做这样题的人,我想我不能及,所以结论是我不会而你会,并且会凭借大脑的思考最终独立做出来。