首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 一道acm题
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sk1002
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-18 16:16:48 楼主
    在浙江大学的online judge上看到一道比较有意思的题
    http://acm.zju.edu.cn/show_problem.php?pid=3001
    小弟想问一下的是:怎样通过一组结果值,确定一个多项式。
    具体使用什么数学方法望大家赐教
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dlyme
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 4

    发表于:2008-08-18 16:52:161楼 得分:0
    Tom forgot his password! Fortunately he is self-knowledge to write some hints for the password before. But he is too busy to

    solve the hints, so he asked you, a good friend of him to help him.

    Task

    For a given sequence a[1], a[2], ..., a[m], you can find a polynomial whose degree is no more than m-1, f(i) =

    a[i],(1 <=i <=m). f(m+1) is the password of Tom. Your task is to find out the password by the given sequence.

    Input

    There are multiple cases in the input.

    There is only one integer on the line 1, indicating the number of the cases.

    Each case begins with one integer m (1 <= m <= 200), which is the amount of sequence. Then there are m integers, a[1], a[2],

    ..., a[m].

    Output

    For each test, print the password in a single line.

    Sample Input

    3
    3 2 4 6
    3 1 4 9
    6 1 1 1 1 1 1

    Sample output

    8
    16
    1

    ===============================================================

    假设这个多项式为:f(x)=c(m-1)*x^(m-1)+c(m-2)*x^(m-2)+...+c(1)*x+c(0)
    该多项式共有m个系数(可以看作m个未知量),又
    f(i)=a[i],1 <=i <=m
    带入可得m个方程。解这个线性方程组,就可以确定下来多项式。

    由于这个方程组比较特殊(范德蒙行列式),所以计算起来还算方便。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • visame
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 04:06:152楼 得分:0
    引用楼主 sk1002 的帖子:
    在浙江大学的online judge上看到一道比较有意思的题
    http://acm.zju.edu.cn/show_problem.php?pid=3001
    小弟想问一下的是:怎样通过一组结果值,确定一个多项式。
    具体使用什么数学方法望大家赐教

    计算方法里面的多项式插值问题
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dlyme
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 4

    发表于:2008-08-19 10:16:533楼 得分:0
    设F0(x)=f(x)是m-1次多项式,则
    F1(x)=F0(x+1)-F0(x)是m-2次多项式,
    F2(x)=F1(x+1)-F1(x)是m-3次多项式,
    ……
    F(m-1)(x)=F(m-2)(x+1)-F(m-2)(x)是0次多项式的常量
    所以我们通过差值再差值,可以得到一个金字塔,塔尖就是F(m-1)(1)
    由于F(m-1)(x)是常量,所以有F(m-1)(2)=F(m-1)(1)
    根据上面的定义,就有
    F(m-2)(3)=F(m-1)(2)+F(m-2)(2)
    F(m-3)(4)=F(m-2)(3)+F(m-3)(3)
    ……
    f(m+1)=F0(m+1)=F1(m)+F0(m)
    所以反向迭代,很快就可以得到最终的密码,不用解方程组。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangwang1103
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 13:29:394楼 得分:0
    ls,强啊!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ztwztq864791
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 10:10:225楼 得分:0
    数值计算的东西。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • P_T_P
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 00:25:336楼 得分:0
    用矩阵求解
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved