starfish,来取分,再给你个建议!!!

meng_tenboy 2001-09-16 07:41:13
上一次你贴了,那么多帖子。感谢!感谢!
是否可以介绍一下,一些常用算法在实践中的使用了?
这样大家兴趣也更高了。
...全文
98 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
starfish 2001-09-17
  • 打赏
  • 举报
回复
前一个帖子是发错地方了,不好意思。
我举一些应用的例子。比如,图论用于集成电路设计,软件工程中的工程规划,编译原理中的代码优化,……;数论用于密码学;计算几何用于计算机图形学和CAD;这种例子实在太多了,所有计算机领域都要用到各种各样的算法。其实不用说别的,我们用的操作系统中也存在各种各样的算法和数据结构,比如内存管理、设备管理用的是链表;目录管理、文件管理用的是索引表;CPU运行时间片的分配用的是贪心法;软件包之间的依赖关系用的是图论中的拓扑理论,……………………………………………………太多了,简直多得说不完
meng_tenboy 2001-09-16
  • 打赏
  • 举报
回复
我知道哈夫曼编码用于压缩,这样的例子.
谢谢!!!
starfish 2001-09-16
  • 打赏
  • 举报
回复
经典的砝码称重问题,以前我写过帖子,我再贴出来。


定理: 由m个数构成的由小到大排列的数列{a(1),a(2),...a(m)},设A(k)=∑a(i), 其中i从1到k, 则
a(1) = 1且a(j+1) <= 2A(j) +1, j取1,2,..,m-1 (1式)
是该数列作为砝码序列可称量{0,1,..,Am}范围内的任意整数重量的充要条件。特别的,上式取等号时,该序列是唯一可能的砝码序列,并且有a(j) = 3^(j-1), 对于j=1,2,..,m

推论: 重量为n的物体要分成m份重量为整数的物体的序列{a(1),a(2),..a(m)},设M=∑3^(i-1),其中i从1到m,则有三种情况:
1) M<n, 无解;
2) M=n,有唯一的解 a(j)=3^(j-1), j=1,2,..m;
3) M>n,可能有多组解,解为满足(1式)并且∑a(i)=n,其中i从1到m,的所有整数序列。

定理的证明:
(充分性)
用数归法:
当i=1的时候,a(i)=1显然成立;
假设i=k的时候定理充分性成立,即用满足(1)式的前k个砝码可以称量的重量W(k)为满足0<=W(k)<=A(k)的所有整数,则i=k+1时,应可以称量W(k+1),应为0<=W(k+1)<=A(k+1)范围内的所有整数。分段讨论如下:
(a)对于0<=W(k+1)<=A(k),显然可以由前k个砝码称量;
(b)对于A(k)<W(k+1)<=a(k+1), 由假设0<=W(k)<=A(k), 交换左右盘的砝码,可以产生配合砝码a(k+1)使用的负砝码为W(k)' 可以是满足-A(k)<=W(k)'<=0的所有整数。与大砝码a(k+1)一起使用可以得到a(k+1)+W(k)' ,一定可以称量某段连续范围的所有整数,因为a(k+1) <=2A(k)+1, 所以a(k+1)-A(k) <= A(k)+1, 因此a(k+1)+W(k)'产生的下限为a(k+1)-A(k),上限为a(k+1),所以可以称量A(k)<W(k+1)<=a(k+1)内的所有W(k+1);
(c)对于a(k+1)<=W(k+1)<=A(k+1),与(b)同理可以得到称量的上下限分别为:a(k+1)+A(k) = A(k+1)和a(k+1);
因此当i=k+1的时候定理充分性也成立,由数归法知定理充分性成立。

(必要性)
i=1时,显然必须有总量为1的砝码;
i>1时,反证之,如果存在某个K,使得(1)不成立,即2A(k)+1<a(k+1),则重量A(k)+1既不能用前面的k-1个砝码称重,又因为a(k+1)-A(k)>A(k)+1而不能用a(k+1)配合着称重。所以矛盾,因此必要性成立。

推论也可以用数归法简单的证明,这里我就不证了,打字太累了:)

根据以上的定理和推论,可以很容易的求出对于重量为任意的n的物体,用m个砝码可以称出来的砝码的方案。当n=∑3^(i-1), i从1到m的时候,有唯一解a(i)=3^(i-1),可以改写成a(i)=2(∑aj)+1,其中j从1到i-1,一个循环就直接输出了;当n>∑3^(i-1)的时候无解;当n<∑3^(i-1)的时候只要根据式(1)并保证∑a(i)=n搜索就可以了。可以递归的搜索求解。具体我就不写程序了。
starfish 2001-09-16
  • 打赏
  • 举报
回复
呵呵,我来了。
那些算法的应用很多的,不过一时之间我也想不到好的例子。等你遇到具体问题的时候就会用到这些算法了。如果你有具体的问题可以提出来
meng_tenboy 2001-09-16
  • 打赏
  • 举报
回复
来人哪!!!!!!!

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧