看板: BudaTech ◎ 佛典电子化讨论    板主: HeavenChow
阅读文章: 第 625/2032 篇 | 上篇 | 下篇 | 回覆 | 转寄 | 转贴 | m H d | 返回
发信人: maha <maha@tpts1.seed.net.tw>, 信区: BudaTech
标  题: Re: 演算法
发信站: 国立中山大学网路组 Mailing List (Tue May 20 13:50:04 1997)
转信站: Lion!ccnews.nsysu!buda-tech@sccid.nsysu
来  源: sccid.nsysu.edu.tw

Heaven wrote:
> 
>   另外, 举个黄金□例, 供大家动脑
> 
>  123456AB34甲乙EFG
>  甲乙丙丁AB34甲乙EFG
> 
> 标准答案:
>  123456AB34甲乙EFG
>  甲乙丙丁  AB34甲乙EFG
> 
> 错误1:(第一行找到二个相同的就对到第二行去)
>  12    3456AB34甲乙EFG
>  甲乙丙丁AB34      甲乙EFG
> 
> 错误2:(第二行找到二个相同的就对到第一行去)
>  123456AB34甲乙        EFG
>            甲乙丙丁AB34甲乙EF□gt; 
>
> 您如何要电脑去判断上面的逻辑呢?

好!让我这个不懂程式、不懂数学的人再来乱想一通,或
许可以激发大家的灵感。

先把这个黄金□例修改成这样:
□□□□□□□□□□□□□□□□□□□□□□□□□
字序  01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
-------------------------
A档 1 2 3 4 5 6 A B 3 4 甲 乙 E F G
B档 甲 乙 丙 丁 A B 3 4 甲 乙 E F G
□□□□□□□□□□□□□□□□□□□□□□□□□

假设每次从A档抓一个字来跟B档比,且每次都从B档的
开头第一个字比起。

A档第01个字「1」在B档找不到,记录值∞。
A档第02个字「2」在B档找不到,记录值∞。
A档第03个字「3」在B档07找到,记录值 7。
A档第04个字「4」在B档08找到,记录值 8。
A档第05个字「5」在B档找不到,记录值∞。
A档第06个字「6」在B档找不到,记录值∞。
A档第07个字「A」在B档05找到,记录值 5。
A档第08个字「B」在B档06找到,记录值 6。
A档第09个字「3」在B档07找到,记录值 7。
A档第10个字「4」在B档08找到,记录值 8。
A档第11个字「甲」在B档01、09找到,记录值 1、 9。
A档第12个字「乙」在B档02、10找到,记录值 2、10。
A档第13个字「E」在B档11找到,记录值11。
A档第14个字「F」在B档12找到,记录值12。
A档第15个字「G」在B档13找到,记录值13。

从上面的观察,当A档第11、12字各产生两个记录值时,依据前
後连续性来考量,应当取记录值9跟10。

很显然的,A档第03、04字有连续记录值7、8,其记录值总和为
7+8=15。但A档从第07到15字皆有连续记录值,且当中亦包含记
录值7、8,而其开始连续的头两个(第07、08字)记录值总和为
5+6=11。

若考虑这两个发生连续记录值的区段,第二个区段的□围不但大
於第一个区段,而且包含第一个区段,所以应当放弃第一个区段。

再从记录值总和来看,第一个区段的两个记录值总和为7+8=15,
第二个区段头两个记录值总和为 5+6=11,因为15>11,所以应该
放弃第一个区段。

□□□□□□□□□□□□□□□□□
 摩诃工作室.吴宝原
 E-mail:maha@tpts1.seed.net.tw
 Tel:(02)6741715/Fax:(02)6741716
□□□□□□□□□□□□□□□□□

阅读文章: 第 625/2032 篇 | 上篇 | 下篇 | 回覆 | 转寄 | 转贴 | m H d | 返回

□ 台大狮子吼佛学专站  http://buddhaspace.org