1.输入一个数字,输出一个数字,实现这个功能的C语言源代码是什么?
2.数学实验题,找出函数f(x)=ax(1-x)中使迭代序列按5周期收敛的一个a值,此时迭代收敛的值是多少,要程序
输入一个数字,霸屏源码输出一个数字,实现这个功能的C语言源代码是什么?
输入文件input.dat内容为:(数字以空格或换行符隔开)运行程序后,输出文件output.dat内容为:
可见实现了数字从大到小排列
C语言源代码为:
#include <stdio.h>
#include <stdlib.h>
#define N
int cmp(const void *a, const void *b) {
return *(int *)b - *(int *)a;
}
int main() {
int arr[N], n = 0;
FILE *fin = fopen("input.dat", "r");
for (n = 0; n < N; ++n) {
if (fscanf(fin, "%d", &arr[n]) == EOF)
break;
}
qsort(arr, n, sizeof(int), cmp);
FILE *fout = fopen("output.dat", "w");
for (int i = 0; i < n; ++i)
fprintf(fout, "%d ", arr[i]);
fprintf(fout, "\n");
fclose(fin);
fclose(fout);
return 0;
}
数学实验题,找出函数f(x)=ax(1-x)中使迭代序列按5周期收敛的一个a值,此时迭代收敛的值是多少,要程序
该值为3.。呃。每天收卡源码。。
首先,用matlab画一个关于f(x)=ax(1-x)的Feigenbaum图,因为分岔的说,在分岔开始的读文本源码周期点3,到差不多看不清的周期点3.6(混沌)之间,所形成的周期收敛,必然是2^k倍。所以,作从3.5~4,以0.为精度的微信发包源码Feigenbaum图,源码如下:
clear;clf;
hold on
axis([3.5,4,-0.5,1.5]);
grid
for a=3.5:0.:4
x=[0.1];
for i=2:
x(i)=a*(x(i-1)*(1-x(i-1)));
end
pause(0.1)
for i=:
plot(a,x(i),'k.');
end
end
额。见附图。可能审核要一段时间。。。
……请仔细观察该图,接单放单源码每一竖行的点数,表示该a值时周期收敛的倍数,通过读图,发现3.附近的一竖行恰有5个点。考虑到函数的精度为0.所以其左数一竖行的a值为3.。
用VC检验:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int n;
double a,x,y=0.6;
a=3.;
FILE *fp;
if((fp=fopen("filedate.xls","w+"))==NULL)
{ printf("can not open file\n");
exit(0);}
fprintf(fp,"x xn\n");
printf("x xn\n");
for(n=1;n<=;n++)
{
x=a*y*(1-y);
fprintf(fp,"%d %f\n",n,y);
printf("%d %f\n",n,y);
y=x;
}
}
检验发现符合5倍周期收敛,收敛值为:0.、0.、0.、0.、0.。
PS。下次提问注意多给些百度分。。。。看在你是理工大的哥们份上。这次就算了。。。