• <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)

            隨筆分類

            隨筆檔案

            友情鏈接

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品国产日本波多野结衣| 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 99久久精品国产一区二区| 性做久久久久久免费观看| 99精品久久精品一区二区| 亚洲va国产va天堂va久久| 久久国产精品一区二区| 欧美久久久久久精选9999| 久久精品日日躁夜夜躁欧美| 国内精品久久久久久久97牛牛| 国产成人久久久精品二区三区 | 丁香色欲久久久久久综合网| 久久精品国产亚洲av麻豆小说| 狠狠人妻久久久久久综合蜜桃| 无码任你躁久久久久久老妇| 久久精品午夜一区二区福利| 久久e热在这里只有国产中文精品99| 国产精品久久久久蜜芽| 精品久久久久久久久久久久久久久| 色综合久久88色综合天天 | 久久精品99久久香蕉国产色戒| 伊人久久亚洲综合影院| 色综合久久最新中文字幕| 亚洲精品tv久久久久久久久| 久久伊人中文无码| 99久久精品久久久久久清纯| 久久久久亚洲AV无码专区体验| 亚洲精品tv久久久久| 国产精品免费看久久久香蕉| jizzjizz国产精品久久| 久久w5ww成w人免费| 精品久久久久久国产 | 精品永久久福利一区二区| 久久人人爽人人人人爽AV | 97久久精品无码一区二区天美| 无码精品久久久久久人妻中字| 99久久免费国产精品特黄| 色综合久久中文字幕综合网| 久久久久免费视频| 日韩美女18网站久久精品| 日本久久久久久久久久|