求导

PAT 1010. 一元多项式求导

允我心安 提交于 2020-01-10 15:53:44
1010. 一元多项式求导 (25) 设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 1 #include<iostream> 2 3 #include<vector> 4 using namespace std; 5 int main(){ 6 vector<int> vi; 7 int n,flag=0; 8 while(cin>>n) 9 vi.push_back(n); 10 for(auto b=vi.begin();b<vi.end();b=b+2){ 11 *b=(*b)*(*(b+1)); 12 if(*b!=0) { flag=1; (*(b+1))--;} 13 else *(b+1)=0; 14 } 15 int tag=0; 16 if(flag==0) 17 cout<<"0 0"<<endl; 18 else 19 for(auto b=vi.begin();b<vi

PAT 1010. 一元多项式求导 (25)

一个人想着一个人 提交于 2020-01-10 06:55:09
设计函数求一元多项式的导数。(注:x n (n为整数)的一阶导数为n*x n-1 。) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 第一次提交有两个测试点没过,检查代码也没问题。后来再次看题目发现,如果为零多项式可表示“0 0”所以第一次先判断导数是不是零多项式。 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 int main(){ 5 int coefficient; 6 int index; 7 int k = 1; 8 scanf("%d %d",&coefficient,&index); 9 if(index==0){ 10 printf("0 0"); 11 return 0; 12 } 13 while(index!=0){ 14 coefficient *= index; 15 index--; 16 if(k){ 17 printf("%d %d",coefficient

PAT-BASIC-1010-一元多项式求导

女生的网名这么多〃 提交于 2020-01-10 02:46:54
设计函数求一元多项式的导数。(注:x n (n为整数)的一阶导数为n*x n-1 。) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0可以输入两个(e,p)处理两个。思维上最大的漏洞可能在于存在一种输入,使得输出的结果为"0 0",例如2 0 #include <bits/stdc++.h> using namespace std; int cof, num; int main() { bool flag = true; bool vis = false; while(scanf("%d%d", &num, &cof) != EOF){ if(flag){ if(num*cof != 0){ printf("%d %d", num*cof, cof-1); flag = false; vis = true; } } else{ if(num*cof != 0){ printf(" %d %d", num*cof, cof-1); vis = true; } } } if(

Pytorch 使用cuda进行自动求导存在的BUG

走远了吗. 提交于 2020-01-10 00:32:37
Pytorch 使用cuda进行自动求导存在的BUG 参考来源: https://www.jianshu.com/p/af1d12cfef52 首先我们来简单地举个pytorch自动求导的例子: 使用CPU求导 x = torch . randn ( 3 ) x = Variable ( x , requires_grad = True ) y = x * 2 gradients = torch . FloatTensor ( [ 0.1 , 1.0 , 0.0001 ] ) y . backward ( gradients ) x . grad 在Ipython中会直接显示x.grad的值 Variable containing : 0.2000 2.0000 0.0002 [ torch . FloatTensor of size 3 ] 一切正常 !!! 使用GPU(CUDA)求导 那我们来试一下使用cuda吧 将代码简单改动,就是将x转化为cuda变量 x = torch . randn ( 3 ) x = Variable ( x , requires_grad = True ) x = x . cuda ( ) # 需要你的计算机有GPU y = x * 2 gradients = torch . FloatTensor ( [ 0.1 , 1.0 , 0.0001 ]

Basic Level 1010. 一元多项式求导 (25)

不打扰是莪最后的温柔 提交于 2020-01-09 18:41:22
设计函数求一元多项式的导数。 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 注意事项就是如果最后没有指数>0的项了,至少输出一个 “0,0” 不能啥都不输出 C++ #include <functional> #include <algorithm> #include <cstdio> #include <vector> using namespace std; int main() { int arr[10000]={0}; int num = 0; while(scanf("%d",&arr[num])!=EOF){ ++num; } vector<int> out; for(int i=0;i<num;i+=2){ int a = arr[i] * arr[i+1]; int b = arr[i+1] -1; if(a!=0) { out.push_back(a); out.push_back(b); } } if(out.size()==0) printf("0 0\n"); else{ for(int i=0;i

B1010.一元多项式求导(25)

自古美人都是妖i 提交于 2020-01-09 03:42:42
设计函数求一元多项式的导数。(注:x n (n为整数)的一阶导数为n*x n-1 。) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 本体的输出的地方应该仔细注意,陷阱比较多。我采用的是加一个计数器,计非零系数项的数量,然后输出的时候用来判断是不是到“头”了, 从而得知是否需要加空格。 参考代码: #include<cstdio> const int N=100000; int main(){ int p[N]={0}; int e,a,step=0; while(scanf("%d %d",&a,&e)!=EOF){ if(e>0){ p[e-1]=a*e; if(p[e-1]!=0) step++; } } if(step==0) printf("0 0\n"); else{ for(int i=N-1;i>=0;i--){ if(p[i]!=0){ printf("%d %d",p[i],i); step--; if(step!=0){ printf(" "); }

B1010. 一元多项式求导

*爱你&永不变心* 提交于 2020-01-08 11:46:27
题目描述    设计函数,求一元多项式的导数 输入格式   以指数递降的方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔 输出格式   以与输入相同的格式输出导数多项式非零项的系数和指数,数字间以空格分隔,但结尾不能有多余空格 输入样例   3 4 -5 2 6 1 -2 0 输出样例   12 3 -10 1 6 0 样例解释   题目给出的多项式为 f(X) = 3X 4 - 5X 2 + 6X - 2 ,求导之后为 g(X) = 12X 3 - 10X + 6 思路 使用数组a[],存放对应指数的系数 然后使用 while ... EOF 的格式来读入系数和指数 从低次项至高次项进行枚举(不能反过来),通过求导公式修改数组a的元素,同时计数不为零的导数项的个数 最后从高次项到低次项进行枚举,输出非零项的系数和指数 #include <bits/stdc++.h> int main(int argc, char *argv[]) { int a[1010] = {0} int k, e, count = 0;// k为系数,e为指数,count技数不为零的导数项个数 while(scanf("%d%d", &k, &e) != EOF){ // 输入系数和指数直到文件末尾 a[e] = k; } a[0] = 0; for(int i = 1;

PyTorch自动求导

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-06 14:45:52
import torch from torch import autograd x = torch . tensor ( 1 . ) a = torch . tensor ( 1 . , requires_grad = True ) #注意带入的值是float型,有个点。 b = torch . tensor ( 2 . , requires_grad = True ) #requires_grad需要求导 c = torch . tensor ( 3 . , requires_grad = True ) y = a ** 2 * x + b * x + c print ( "before+" , a . grad , b . grad , c . grad ) #动态图只构建了,还未计算 grads = autograd . grad ( y , [ a , b , c ] ) #y分别对a,b,c求导 print ( "after" , grads [ 0 ] , grads [ 1 ] , grads [ 2 ] ) #计算后,直接带进去需要的值 输出 注意 放的是 float型 来源: CSDN 作者: 林灵会灭 链接: https://blog.csdn.net/qq_35159009/article/details/103852000

PAT乙级 1010一元多项式求导(C语言)

安稳与你 提交于 2019-12-31 17:57:24
注意点: 只要判断第一项求导后是否为零多项式。如果是,输出0 0;否则,依次输出求导后非零多项式。 输出格式问题,最后不要带空格。 不通过可以试试这两个测试用例: 输入:2 3 0 2 0 1 输出:6 2 0 1 0 0 输入: 0 1 输出: 0 0 # include <stdio.h> int main ( ) { int i , j ; scanf ( "%d %d" , & i , & j ) ; if ( i * j == 0 ) { printf ( "0 0" ) ; return 0 ; } printf ( "%d %d" , i * j , j - 1 ) ; while ( ~ scanf ( "%d %d" , & i , & j ) ) { if ( j > 0 ) { printf ( " " ) ; printf ( "%d %d" , i * j , j - 1 ) ; } } return 0 ; } 来源: CSDN 作者: warm- 链接: https://blog.csdn.net/qq_26972735/article/details/103783361

Sigmoid

跟風遠走 提交于 2019-12-29 19:18:39
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> sigmoid函数也叫Logistic函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。Sigmoid作为激活函数有以下优缺点: 优点:平滑、易于求导。 缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。 Sigmoid函数由下列公式定义 其对x的导数可以用自身表示: 来源: oschina 链接: https://my.oschina.net/kaiyuancao/blog/3149268