• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Problem G : Net Loss

            Rose N. Blatt is designing an embedded neural network to place inside a cell phone. When trained by the phone’s
            owner, the neural network will enable the user to dictate text messages in a hands-free way. The key idea in Rose’s
            design is the use of complicated polynomial response functions in each of the nodes of the network (rather than the
            more traditional thresholding functions used in many other neural nets). Figure 1 shows a portion of such a neural
            network (the polynomials are not accurately graphed).
            When Rose was ready to select her polynomials, she discovered a problem. Due to the limited amount of memory
            available, she did not have enough space to store all of the coefficients of the polynomials in her network. She has
            decided to use an approximation to each polynomial in the form of a continuous polygonal curve with two segments,
            y = aB1Bx + aB0B and y = bB1Bx + bB0B. The segments meet at a point whose x-coordinate, c, is between -1 and +1. Rose wants
            the approximation to be the best in the sense that the distance between p and the approximation function g is
            minimal. We define the distance between p and g as the integral of the square of their difference:
            For instance, if the polynomial is x^2-0.2, then the best polygonal approximation, with lines meeting at c = 0, is shown in Figure 2 (the dotted line shows the graph of the polygonal approximation).
            In the few bytes that are available for each node, Rose can store the values of aB1B, aB0B, bB1B, bB0B, and c as signed numbers.
            Fortunately Rose has a program that supplies her with a good guess for the value of c. Given this value, you are
            asked to help Rose find the optimal values for aB1B, aB0B, bB1B, and bB0B in the approximations to her polynomials.

            Input

            The input file contains multiple test cases. Each test case consists of three lines. The first line contains a positive
            integer n, 1 ≤ n ≤ 10, representing the degree of the polynomial p(x). This is followed by a line containing n +1
            numbers between -1 and 1 inclusive, which are the coefficients of p(x) from highest order term down to the constant
            term, expressed with at most three places after the decimal point. The last line for each test case contains the value
            for c, -1 < c < 1, expressed with at most three places after the decimal point.

            A line containing the integer zero follows the last test case.

            Output

            For each test case, print the case number (beginning with 1) and the four optimal values, displaying each with exactly
            three places after the decimal point. The first and second values are the parameters a1 and a0 of the line segment
            y = a1x + a0 defining g in the range -1 ≤ x ≤ c. The third and fourth values are the parameters b1 and b0 of the line
            segment y = b1 + b0 defining g in the range c ≤ x ≤ 1. The distance d(p,g) between p and g (as defined earlier)
            should be the minimum over all such choices for a1, a0, b1, and b0.

            Sample Input

            2
            1.0 0.0 -0.2
            0.0
            3
            1 0 -1 0
            0.707
            0

            Output for the Sample Input

            Case 1: -1.000 -0.367 1.000 -0.367
            Case 2: -0.499 -0.036 1.198 -1.236

            數學題,求函數g(x)里的常數項a0,a1,b0,b1,使得函數d(p,g)取得最值。
            在推導出極值條件后,需要實現多項式求值,多項式乘法和多項式定積分3個函數,便能解決問題。

            400027  2009-04-24 05:49:39 Accepted  0.002  Minimum  19193  C++  4124 - Net Loss
             1 #include <iostream>
             2 using namespace std;
             3 
             4 const int MAXPOW = 20;
             5 double a0,a1,b0,b1,A,B,C,D,E,F,G,H,I;
             6 struct poly{
             7     double c[MAXPOW];
             8     double value(double x) const{           //多項式求值
             9         double ans=0;
            10         for(int i=MAXPOW-1;i>=0;i--)
            11             ans=ans*x+c[i];
            12         return ans;
            13     }
            14     poly operator * (const poly &p) const{  //多項式乘法
            15         poly t;
            16         for(int i=0;i<MAXPOW;i++)
            17             for(int j=0;j<=i;j++)
            18                 t.c[i]+=p.c[i-j]*c[j];
            19         return t;
            20     }
            21     double integral(double a,double b) const{//定積分
            22         poly t;
            23         for(int i=1;i<MAXPOW;i++)
            24             t.c[i]=c[i-1]/i;
            25         return t.value(b)-t.value(a);
            26     }
            27     void clear(){
            28         memset(c,0,sizeof(c));
            29         }
            30     poly(){
            31         memset(c,0,sizeof(c));
            32     }
            33 }p,q;
            34 int main(){
            35     double c;
            36     int i,n,ca=1;
            37     while(scanf("%d",&n),n){
            38         p.clear();
            39         for(i=n;i>=0;i--) scanf("%lf",&p.c[i]);
            40         scanf("%lf",&c);
            41         q.c[1]=1,q.c[0]=-c;                 
            42         A=p.integral(-1,c) , B=q.integral(-1,c) , C=(p*q).integral(-1,c) , D=(q*q).integral(-1,c);
            43         E=p.integral(c,1) , F=q.integral(c,1) , G=(p*q).integral(c,1) , H=(q*q).integral(c,1);
            44         I=2*(A+E-B*C/D-F*G/H);
            45         a1=(C-I*B)/D , a0=I-c*a1 , b1=(G-I*F)/H , b0=I-c*b1;
            46         printf("Case %d: %.3lf %.3lf %.3lf %.3lf\n",ca++,a1,a0,b1,b0);
            47     }
            48     return 0;
            49 }

            posted on 2009-04-24 14:05 極限定律 閱讀(1193) 評論(0)  編輯 收藏 引用 所屬分類: ACM-ICPC World Final 2008題解

            <2009年4月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            導航

            統計

            常用鏈接

            留言簿(10)

            隨筆分類

            隨筆檔案

            友情鏈接

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            日韩中文久久| 久久99热这里只有精品国产| 亚洲人成伊人成综合网久久久| 伊人久久大香线蕉综合Av| 午夜天堂精品久久久久| 青青草原综合久久大伊人精品| 欧美久久一区二区三区| 久久夜色精品国产欧美乱| 岛国搬运www久久| 久久亚洲私人国产精品| 久久国产成人午夜aⅴ影院| 久久人人爽人人爽人人片AV不 | 久久精品国产男包| 国产精品一区二区久久国产| 久久久91人妻无码精品蜜桃HD| 性欧美大战久久久久久久久 | 99久久国产主播综合精品| 久久精品中文字幕一区| 久久青青草原精品国产软件| 九九久久99综合一区二区| 一本色综合网久久| 一本久道久久综合狠狠躁AV| 99久久久久| 久久精品国产亚洲7777| 99久久精品国内| 久久国产免费观看精品3| 亚洲va国产va天堂va久久| 久久综合久久伊人| 久久中文字幕视频、最近更新| 亚洲国产精品久久久久婷婷老年| 国内精品久久久久久99| 青青草原精品99久久精品66| 婷婷久久香蕉五月综合加勒比| 精品国产乱码久久久久软件| 91麻豆国产精品91久久久| 色综合久久夜色精品国产| 久久这里的只有是精品23| 久久天天婷婷五月俺也去| 久久午夜无码鲁丝片秋霞| 亚洲伊人久久精品影院| 麻豆成人久久精品二区三区免费|