数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 3981|回复: 6

请教一算法!

[复制链接]
发表于 2004-6-16 04:42:33 | 显示全部楼层 |阅读模式
<>92年的一道题,已知18种氨基酸,另给一分子量X(X&lt;=1000),要求分解此分子量,列出所有可能的氨基酸组合。
这题其实就是用18个已知数来组成X,求出可行解的。
本人想到了用嵌套循环的方法,可是太复杂了的,不知有没其他高效算法可以解决这个问题呢?
希望给出详细的解答步骤!!!谢谢!!!!</P>
发表于 2004-6-27 06:08:50 | 显示全部楼层
<>[em07]我有一种算法,就是定义一个数组,然后对这个数组进行操作。我是新手,我说的不能登大雅之堂的[em35]</P>
发表于 2004-6-27 06:11:37 | 显示全部楼层
一起讨论一下嘛
 楼主| 发表于 2004-6-27 19:55:08 | 显示全部楼层
<>斑竹呢??高手呢??帮忙回答下!!!</P><>顶!</P>
发表于 2004-6-27 22:14:18 | 显示全部楼层
除了回溯法,我也没想到什么更好的办法,不过用回溯时用上栈/递归做起来应该也还行,有空我把程序给你发上来
发表于 2004-7-1 21:09:31 | 显示全部楼层
<>粗略写了一下,代码如下</P> IK04Ob4h.rar (1.29 KB, 下载次数: 0)

[此贴子已经被作者于2004-7-1 13:44:43编辑过]

发表于 2005-8-28 01:04:27 | 显示全部楼层
<>典型的一道DP问题。</P>
<>定义 f(m, k): 表示用1..k 这前k中氨基酸组成分子量为m的组法。</P>
<>f(m, k) = f(m - value[k]*1, k-1) + f(m - value[k]*2, k-1)+..</P>
<P>f(m - value[k]*i, k-1);</P>
<P>注意记录状态,别重复就行了。至于生成组合方案,只需要记录上述转移的可行状态。</P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-27 12:49 , Processed in 0.103983 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表