当前位置: 首页 > news >正文

SCAU数值计算OJ

18957.计算自然对数ln(x)的导数

Description

求自然对数ln(x)的导数,输入双精度实数x>=1,输出自然对数ln(x)的导数(精确到小数点后2位有效数,小数点后第2位四舍五入所得)。

输入格式

m(整数,实验数据总数)
x1(实数,自然对数ln(x)的自变量)
X2实数,自然对数ln(x)的自变量)
...
xm(实数,自然对数ln(x)的自变量)

输出格式

y1(实数,自然对数ln(x1)的导数)
y2实数,自然对数ln(x2)的导数)
...
ym(实数,自然对数ln(xm)的导数)

输入样例

3
1.0
2.0
3.0

输出样例

1.00
0.50
0.33

代码:

 
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
double ln(int x){double h=0.32;for(int i=0;i<20;i++){h/=2.0;}return log((x+h)/x)/h;}
int main()
{int m;scanf("%d",&m);double x[100];for(int i=0;i<m;i++){scanf("%lf",&x[i]);}for(int i=0;i<m;i++){printf("%.2f\n",ln(x[i]));}return 0;
}

18991 实验1.2 调和级数求和

#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace std;
double sumHSDL(int h){double sum=0;for(int i=1;i<=h;i++){sum+=1.0/i;}return sum;
}
double sumHSDR(int h){double sum=0;for(int i=h;i>=1;i--){sum+=1.0/i;}return sum;
}int main()
{int m;cin>>m;vector<int> k;int a;for(int i=0;i<m;i++){cin>>a;k.push_back(a);}for(int i=0;i<m;i++){printf("%.14f ",sumHSDL(k[i]));printf("%.14f\n",sumHSDR(k[i]));}return 0;}

18996 求正弦函数值

#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace std;
#define PI 3.1415926535897932l
int GetSinItemNumber(double x)
{ int N;if(x<0)x=-x;if(x<=PI/8)    N=6;else if(x<=PI/4)    N=8;else if(x<=PI/2)    N=10;else if(x<=3*PI/4)  N=12;else                N=14;return N;
}
double SINTV(double x)
{ int K,N;double y=1.0,xx=0.0,temp;N=GetSinItemNumber(x);K=N*2;xx=x*x;while(K>0){ y=1.0-y*xx/K/(K+1);K-=2;}return y*x;
}int main()
{int m;scanf("%d",&m);double x[100];for(int i=0;i<m;i++){scanf("%lf",&x[i]);}for(int i=0;i<m;i++){printf("%.14lf\n",SINTV(x[i]));}return 0;
}

18997 求余弦函数值

#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace std;
#define PI 3.1415926535897932l
int GetSinItemNumber(double x)
{ int N;if(x<0)x=-x;if(x<=PI/8)    N=6;else if(x<=PI/4)    N=8;else if(x<=PI/2)    N=10;else if(x<=3*PI/4)  N=12;else                N=14;return N;
}
double COSTV(double x)
{ int K,N;double y=1.0,xx;N=GetSinItemNumber(x)+1;K=N*2;xx=x*x;while(K>0){ y=1.0-y*xx/K/(K-1);K-=2;}return y;
}int main()
{int m;scanf("%d",&m);double x[100];for(int i=0;i<m;i++){scanf("%lf",&x[i]);}for(int i=0;i<m;i++){printf("%.14lf\n",COSTV(x[i]));}return 0;
}

18998 求对数函数值ln(x)

#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#define MATHLOG 1
#define LOGTWO   0.69314718055994531
#define LOGTEN   2.3025850929940457
#ifndef ZERO#define ZERO 0.5E-100
#endif
using namespace std;
int GetLogItemNumber(double a)
{ int N;if(a<=1)   N=-1;else if(a<=1.2) N=7;else if(a<=1.5) N=10;else if(a<=2.0) N=15;else if(a<=3.0) N=24;else if(a<=10)  N=84;else  N=84*(int)(a/10);return N;
}
double LOGTV(double a)
{ int N=0,K,NK;double x,xx,y;x=(a-1)/(a+1);xx=x*x;N=GetLogItemNumber(a);NK=N*2+1;y=1.0/NK;for(K=N;K>0;K--){ NK-=2;y =1.0/NK+xx*y;}return 2.0*x*y;
}
double LOG(double a)
{ int TYPE=0,K=0;double x0,x,y,power=2.0;x=a;if(x<ZERO) return -100;if(x<1){x=1.0/x,TYPE=1;}while(power<x){ power*=2.0;K++;}y=LOGTV(2.0*x/power)+K*LOGTWO;if(TYPE==1)y=-y;return y;
}int main()
{int m;scanf("%d",&m);double x[100];for(int i=0;i<m;i++){scanf("%lf",&x[i]);}for(int i=0;i<m;i++){printf("%.14lf\n",LOG(x[i]));}return 0;
}

18999 求指数函数值

#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#define MATHEXP 1#define EPOW01  2.7182818284590452
#define EPOW02  7.3890560989306502
#define EPOW10  22026.465794806717double EXPTV(double x)
{ int N=23;int K=0;double y=1.0;if(x<=0.5) N=14; /*See Ch3 Table 7.1*/else if(x<=1.0) N=18;else            N=23;for(K=N;K>0;K--)y=1.0+y*x/K;return y;
}double EXP(double x)
{ int TYPE=0;double y0=1.0;if(x<0){TYPE=1;x=-x;}while(1){      if(x>10) {x-=10;y0*=EPOW10;}else if(x>2)  {x-=2; y0*=EXPTV(2);}else          break;}y0 *=EXPTV(x);if(TYPE==1) return 1.0/y0;else        return y0;
}int main()
{int m;scanf("%d",&m);double x[100];for(int i=0;i<m;i++){scanf("%lf",&x[i]);}for(int i=0;i<m;i++){printf("%.14lf\n",EXP(x[i]));}return 0;
}

19000 二分法解非线性方程

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define  MN 51
int      RN=1;
double   ANS,ERR,EPS=0.4E-14;
double   A[MN],B[MN],X[MN],Y[MN],E[MN];
double f(double x){return x*x*x-2.0*x-2;}
// double   A0=0.0,B0=2.5;
double   A0,B0;int BISECTION(double A0,double B0)
{ double FA;int K;FA=f(A0);A[0]=A0;B[0]=B0;X[0]=(A0+B0)/2.0;Y[0]=f(X[0]);E[0]=(B0-A0)/2;for(K=1;K<MN;K++){ if(Y[K-1]*FA>0) {A[K]=X[K-1];B[K]=B[K-1];}else           {A[K]=A[K-1];B[K]=X[K-1];}X[K]=(A[K]+B[K])/2.0;Y[K]=f(X[K]);E[K]=(B[K]-A[K])/2;if(E[K]<EPS) break;}int k;if(K<MN)K++;RN=K;ANS=X[RN-1];ERR=E[RN-1];for(k=0;k<RN;k++){  if(k==RN-1)printf("%.15f %.15f %.15f\n",A[k],B[k],X[k]);}return 0;
}
int main()
{ int m = 1;scanf("%d", &m);double x[m], y[m];for (int i = 0; i < m; i++) {scanf("%lf %lf", &x[i],&y[i]);}for (int i = 0; i < m; i++) {BISECTION(x[i],y[i]);}}

19001 黄金分割求函数最小值

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define  MN   51
int      RN=1;
double  OPTX,OPTY,ERR;
double  GOLDEN=0.6180339887498948l;
double  A[MN],B[MN],AX[MN],BX[MN];
double  X1[MN],X2[MN],Y1[MN],Y2[MN];/*  Exam 3.1 */
double  EPS=0.4E-8;
double f(double x){return exp(x)-2*x*x;}
int GoldenSection(double A0,double B0)
{ int K;A[0]=A0;B[0]=B0;BX[0]=(B[0]-A[0])*GOLDEN;AX[0]=BX[0]*GOLDEN;X2[0]=A[0]+BX[0];Y2[0]=f(X2[0]);X1[0]=A[0]+AX[0];Y1[0]=f(X1[0]);for(K=1;K<MN;K++){ BX[K]=AX[K-1];AX[K]=BX[K]*GOLDEN;if(Y1[K-1]<Y2[K-1]){ A[K]=A[K-1];B[K]=X2[K-1];X2[K]=X1[K-1];Y2[K]=Y1[K-1];X1[K]=A[K]+AX[K];Y1[K]=f(X1[K]);}else{ A[K]=X1[K-1];B[K]=B[K-1];X1[K]=X2[K-1];Y1[K]=Y2[K-1];X2[K]=A[K]+BX[K];Y2[K]=f(X2[K]);}if(AX[K]<EPS) break;}if(K<MN)K++;RN=K;ERR=AX[RN-1];if(Y1[RN-1]<Y2[RN-1]){ OPTX=X1[RN-1];OPTY=Y1[RN-1];}else   { OPTX=X2[RN-1];OPTY=Y2[RN-1];}for(K=0;K<RN;K++){  if(K==RN-1)printf("%.9f %.9f %.9f %.9f %.9f %.9f\n",A[K],X1[K],X2[K],B[K],Y1[K],Y2[K]);//   printf("%.9f %.9f %.9f\n",Y1[K],Y2[K],AX[K]);}
//   printf("%.9f %.9f %.9f\n\n",OPTX,OPTY,ERR);return 0;
}int main()
{ int m = 1;scanf("%d", &m);double x[m], y[m];for (int i = 0; i < m; i++) {scanf("%lf %lf", &x[i],&y[i]);}for (int i = 0; i < m; i++) {GoldenSection(x[i],y[i]);}}

19020 选列主元约当消元法求线性方程组唯一解

#include <stdio.h>
#include <stdlib.h>
#include <math.h>double b[4][5];void getm(int k)//选取最大主列
{double temp;for(int i=k+1; i<4; i++){if(fabs(b[k][k])<fabs(b[i][k])){for(int a=k; a<5; a++){temp = b[k][a];b[k][a] = b[i][a];b[i][a] = temp;}}}return ;
}void Uppertriangle()//化上三角就是把对角线下面变成0
{double x;for(int i=0; i<3; i++){getm(i);x = b[i][i];for(int a=i; a<5; a++){b[i][a] = b[i][a]/x;//化1}for(int j=i+1; j<4; j++){x = b[j][i];for(int a=i; a<5; a++){b[j][a] = b[j][a]-b[i][a]*x;//化0}}}
}void Lowertriangle()//化下三角就是把对角线上面变成0
{double x;for(int i=3; i>0; i--){x = b[i][i];for(int a=i; a<5; a++){b[i][a] = b[i][a]/x;//把对角线上值系数变成1}for(int j=i-1; j>=0; j--){x = b[j][i];for(int a=j; a<5; a++){b[j][a] = b[j][a]-b[i][a]*x;//在上三角基础上把第i列的第i项之外其他变成0}}}
}int main()
{int n;scanf("%d",&n);while(n>0){for(int i=0; i<4; i++){for(int j=0; j<5; j++){scanf("%lf",&b[i][j]);}}Uppertriangle();Lowertriangle();
printf("%0.9lf %0.9lf %0.9lf %0.9lf \n",b[0][4],b[1][4],b[2][4],b[3][4]);n--;}return 0;
}

http://www.xdnf.cn/news/914419.html

相关文章:

  • ​​Java 异常处理​​ 的详细说明及示例,涵盖 try-catch-finally、自定义异常、throws 与 throw 的核心概念和使用场景
  • 深入Java8-日期时间API:TemporalAdjusters、TemporalAdjuster类
  • C++中的右值引用与移动语义的理解
  • 思维链的 内部机制和简单理解
  • 【Unity Shader编程】之让画面动起来
  • Qwen2.5-VL - 模型结构
  • 如何使用 Bulk Rename Utility 批量为文件名添加统一后缀?
  • 今日行情明日机会——20250606
  • 如何防止误删除rm (万恶之源)
  • 功率估计和功率降低方法指南(3~5)
  • 光耦合器:隐形守护者,拓展无限应用
  • Python内置函数ord()详解
  • 为什么要对邮件列表清洗?
  • 美国大休斯顿都会区电网数据
  • 云服务器中容灾模式的主要用途都有哪些?
  • PDF文件如何转换格式?简单教程来了
  • SAP ABAP LOOP GROUP BY 分组循环的使用方法
  • 独家首发!低照度环境下YOLOv8的增强方案——从理论到TensorRT部署
  • 概念理解篇:线程同步之【互斥】
  • PyQt6 GUI应用程序开发实操指南
  • 布林波动率策略
  • 算法学习之——LRU最近最少使用
  • 告别数据泥沼,拥抱智能中枢:King’s四位一体重塑科研生产力
  • 负载均衡器 LB》》
  • ABB输入/输出系统- S800输入/输出AI830A
  • 场景题-3
  • 【Linux】sed 命令详解及使用样例:流式文本编辑器
  • 【网页端数字人开发】基于模型SAiD实现嘴型同步
  • 三模冗余设计
  • 书籍推荐 --- 《筚路维艰:中国经济社会主义路径的五次选择》