好玩的vbs特色代码第1/6页
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
用什么来表示组合?比如从5个数里面选n个数,你怎么用一个数字来表述你的选择结果?注意是一个数字。 硬盘的权限就是一个例子,参考脚本手册FileSystem文件Attributes属性部分: Normal0普通文件。不设置属性。 ReadOnly1只读文件。属性为读/写。 Hidden2隐藏文件。属性为读/写。 System4系统文件。属性为读/写。 Volume8磁盘驱动器卷标。属性为只读。 Directory16文件夹或目录。属性为只读。 Archive32文件在上次备份后已经修改。属性为读/写。 Alias64链接或者快捷方式。属性为只读。 Compressed128压缩文件。属性为只读。 如果选择了其中任意几个数字相加,比如得到65,那么你选择的肯定是1和64的组合,vbs里面的And运算符还对两个数值表达式中位置相同的位执行逐位比较,如果1and65得到的是1那么说明65可以表示你的选择里面含有1,如果是0则没有。 还有一个的问题是:链表型的数据结构如何描述,一个表型的数据,可以根据行索引,可以方便增加删除行,并且增加数据前判断一行是否重复。而且代码不是特别多,速度不是特别慢,运行过程可以把数据显示出来供程序员调试? 在vbs里面可以利用dictionary来模拟,Item项是一个一维数组。 这两种个数据结构的原理我用到了一个游戏题目里: <style> body,td{font-size:12px;} table{border:1pxsolidlightblue;border-collapse:collapse;width:100%;} </style> 四人欲过一座河,且只有一个氧气瓶(每次最多能容两人同时游过).<br/> 甲单独过河需1分钟,乙需2分钟,丙需5分钟,丁需7分钟.则四人全部通过的最短时间是多少.<br/> <buttononclick="vbs:try">过河</button> <pid="ppp"></p> <SCRIPTLANGUAGE="vbScript"> ''本题属于决策树类型问题 ''难点在于数据的描述上 ''决策树的数据关键是:初始状态,操作步骤,结束状态 ''每次递归的输入值--初始状态,是上次运算的结果--结束状态 ''因此经过反复推敲,决定用:岸边状态+操作步骤编码+时间结果+开关状态来描述 ''技巧:关于搭档方式的描述,采用2的n次方相加,实现用一个数来表示2个数搭配的目的 ''比如01搭档,那么表示方法就是2^0+2^1=3职能是01搭配才会产生,绝对不会是其他数字 ''见partner函数 personTime=Array(1,2,5,7)''每个人花费时间 startBank="0123"''用空格分开表示河左岸的人的状态 setsolution=CreateObject("Scripting.Dictionary")'' ''用一个结构体来描述数据,每行的格式如下: ''solution.AddP,Array(onceTime,lBank,rBank,0) subtry ''点按钮开始递归调用 ifsolution.Count=0then setsolution=gogo("",0,startBank) else ifisFinish(solution)then succeed exitsub else setsolution=aa(solution) endif endif showsolution endsub functiongogo(K,T,L) ''输入:K步骤序列string ''输入:T上步骤执行时间int ''输入:L可选择的人员名单string ''输出:返回后的结构体Dictionary setscheme=CreateObject("Scripting.Dictionary") dimtempArr:tempArr=split(L) n=n+1 foreachiintempArr foreachjintempArr ifi<>jthen onceTime=maxTime(i,j)+T P=trim(K&""&partner(i,j)) rBank=trim(otherBank(L)&""&i&""&j) lBank=otherBank(rBank) ifnotscheme.Exists(P)then scheme.AddP,Array(onceTime,lBank,rBank,0) endif endif next next setgogo=scheme endfunction functionaa(D) ''输入:结构体Dictionary ''输出:返回后的结构体Dictionary setscheme=CreateObject("Scripting.Dictionary") foreachKinD.Keys T=D.Item(K)(0) bool=D.Item(K)(3) ''alertK ifcbool(bool)then L=D.Item(K)(1) linkgogo(K,T,L),scheme else L=D.Item(K)(2) linkback(K,T,L) |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于好玩的vbs特色代码第1/6页的所有评论