亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > VBScript > 正文

好玩的vbs特色代碼第1/6頁

2020-07-26 12:03:47
字體:
來源:轉載
供稿:網友
用什么來表示組合?比如從5個數里面選n個數,你怎么用一個數字來表述你的選擇結果?注意是一個數字。

硬盤的權限就是一個例子,參考腳本手冊FileSystem文件Attributes 屬性部分:
Normal 0 普通文件。不設置屬性。 
ReadOnly 1 只讀文件。屬性為讀/寫。 
Hidden 2 隱藏文件。屬性為讀/寫。 
System 4 系統文件。屬性為讀/寫。 
Volume 8 磁盤驅動器卷標。屬性為只讀。 
Directory 16 文件夾或目錄。屬性為只讀。 
Archive 32 文件在上次備份后已經修改。屬性為讀/寫。 
Alias 64 鏈接或者快捷方式。屬性為只讀。 
Compressed 128 壓縮文件。屬性為只讀。

如果選擇了其中任意幾個數字相加,比如得到65,那么你選擇的肯定是1和64的組合,vbs里面的And 運算符還對兩個數值表達式中位置相同的位執行逐位比較,如果 1 and 65 得到的是1那么說明65可以表示你的選擇里面含有1,如果是0則沒有。

還有一個的問題是:鏈表型的數據結構如何描述,一個表型的數據,可以根據行索引,可以方便增加刪除行,并且增加數據前判斷一行是否重復。而且代碼不是特別多,速度不是特別慢,運行過程可以把數據顯示出來供程序員調試?

在vbs里面可以利用dictionary來模擬,Item項是一個一維數組。

這兩種個數據結構的原理我用到了一個游戲題目里:

 <style>
 body,td{font-size:12px;}
 table{border:1px solid lightblue;border-collapse:collapse;width:100%;}
 </style>

四人欲過一座河,且只有一個氧氣瓶(每次最多能容兩人同時游過). <br/>
甲單獨過河需1分鐘,乙需2分鐘,丙需5分鐘,丁需7分鐘. 則四人全部通過的最短時間是多少. <br/>

 <button onclick="vbs:try">過河</button>
  <p id="ppp"></p>
 <SCRIPT LANGUAGE="vbScript">
'本題屬于決策樹類型問題
'難點在于數據的描述上
'決策樹的數據關鍵是:初始狀態,操作步驟,結束狀態
'每次遞歸的輸入值--初始狀態,是上次運算的結果--結束狀態
'因此經過反復推敲,決定用:岸邊狀態+操作步驟編碼+時間結果+開關狀態來描述


'技巧:關于搭檔方式的描述,采用2的n次方相加,實現用一個數來表示2個數搭配的目的
'比如01搭檔,那么表示方法就是2^0 + 2^1=3職能是01搭配才會產生,絕對不會是其他數字
'見partner函數

personTime =Array(1,2,5,7)'每個人花費時間
startBank="0 1 2 3"'用空格分開表示河左岸的人的狀態

set solution = CreateObject("Scripting.Dictionary")' 

'用一個結構體來描述數據,每行的格式如下:
'solution.Add P,Array(onceTime,lBank,rBank,0) 

sub try
'點按鈕開始遞歸調用
if solution.Count=0 then 
set solution=gogo("",0,startBank) 
else
if isFinish(solution) then
succeed
exit sub
else
set solution=aa(solution)
end if
 end if
show solution
end sub



function gogo(K,T,L)
'輸入:K步驟序列 string
'輸入:T上步驟執行時間 int
'輸入:L可選擇的人員名單 string
'輸出:返回后的結構體 Dictionary
set scheme = CreateObject("Scripting.Dictionary") 
dim tempArr:tempArr=split(L)

n=n+1  
for each i in  tempArr
for each j in  tempArr
 if i<>j then
onceTime=maxTime(i,j) + T
P=trim(K & " " & partner(i,j)) 
rBank=trim(otherBank(L) & " " &  i & " " &   j)
lBank=otherBank(rBank)
if not scheme.Exists(P) then 
 scheme.Add P,Array(onceTime,lBank,rBank,0) 
end if
 end if
next
next  
  set gogo=scheme
end function

function aa(D)
'輸入:結構體 Dictionary
'輸出:返回后的結構體 Dictionary

set scheme = CreateObject("Scripting.Dictionary")
for each K  in D.Keys
 T=D.Item(K)(0) 
 bool=D.Item(K)(3)
 ' alert K
 if cbool(bool) then
 L=D.Item(K)(1)  
 link gogo(K,T,L),scheme 
 else
 L=D.Item(K)(2)  
 link back(K,T,L),scheme
 end if 
 next 
set aa=scheme
end function

 'set D = CreateObject("Scripting.Dictionary") 
'D.Exists(

sub link(D1,D2)
'輸入:D1結構體 Dictionary
'輸入返回:D2結構體 Dictionary
 for each K in D1.Keys
if not D2.Exists(K) then D2.add K,D1.Item(K)
 next
end sub

 
function back(K,T,L)
'輸入:K步驟序列 string
'輸入:T上步驟執行時間 int
'輸入:L可選擇的人員名單 string
'輸出:返回后的結構體 Dictionary

set scheme = CreateObject("Scripting.Dictionary")
dim tempArr:tempArr=split(L) 
for each i in  tempArr
onceTime=personTime(cint(i)) + T
P=trim(K & " " & i) 
lBank= otherBank(L) & " " &  i 
rBank= otherBank(lBank)
scheme.Add P,Array(onceTime,lBank,rBank,1)
next
set back=scheme
end function

function remove(L,i)
'輸入:L人員名單 string
'輸入:i被移出人的編號 int
'輸出:移出后的人員名單 string
L=L & " "
L=replace(L,i & " ","")
remove=trim(L)
end function

function otherBank(L)
'輸入:這岸的名單 string
'輸出:得到另外一個岸邊的名單 string
tempArr=split(L)
LL=startBank 
for each i in tempArr
LL=remove(LL,i)
next
otherBank=LL
end function



function maxTime(x,y)
'輸入:x,y人的編號int
'輸出:得到兩個人一次過河的最大時間int
a=personTime(cint(x))
b=personTime(cint(y))
if a>b then maxTime=a else maxTime=b
end function 

function PtoMan(P)
 '輸入:P單個方案 string
 '輸出:由兩個人名組合的方案 string
 dim tempStr 
 dim bound:bound=ubound(personTime)
 for i=0 to bound
for j=0 to bound
if i<>j and (partner(i,j)=P) then
tempStr=i & " " & j
exit for
exit for
end if
next
 next
 PtoMan=tempStr
end function

function PforRead(P)
 '輸入:P有空格分隔的方案序列 string
 '輸出:可讀懂的方案序列 string
 tempArr=split(P)
 dim tempStr 
 for i=0 to ubound(tempArr)
if (i mod 2) =0 then 
tempStr =tempStr & PtoMan(tempArr(i)) & "過去 "
else
tempStr =tempStr & tempArr(i) & "回來 "
end if
 next
 PforRead=tempStr
end function

function partner(x,y)
 '輸入兩個數, 代表組合唯一值,存放到字符串里int
 '輸出:
 a=cint(x)
 b=cint(y) 
 partner=cstr(2^a +2^b)
end function

sub show(D)
'輸入:D字典Dictionary
'顯示字典中的內容
dim i:i=1
re= "<table border=1>"
re=re & "<tr><td>行號</td><td>過河方案</td><td>花費時間</td><td>左岸狀態</td><td>右岸狀態</td><td>過河開關</td></tr>"
for each key in D.Keys
re=re & "<tr><td>" & i & "</td><td title='" & key & "'>" & PforRead(key) & "</td>" 
for each a in D.Item(key)
re=re &  "<td>" & a & "</td>" 
next
re=re & "</tr>"
i=i+1
next
re=re & "</table>"
ppp.innerHTML=re

end sub

function D2Arr(D)
 '輸入:D字典Dictionary
 '輸出:時間結果數組,第一個元素設置為極小,不參與排序,array
 dim kArr:kArr=D.keys
 dim tempArr():redim tempArr(ubound(kArr)+1)
 tempArr(0)=0
 for i=0 to D.count-1
 tempArr(i+1)=  D.Item(kArr(i))(0)  
 next
 D2Arr=tempArr
end function

sub sortA(Arr)
'輸入:Arr時間結果數組array
'堆排序,復雜度n*log(n)/log(2),如果8個數就是24次,如果用冒泡是8^2=64次
dim n,i,L,ir,rArr,j
n = ubound(Arr)  
    L = int(n / 2)+1  
    ir = n
    do
        if L > 1 then
            L = L - 1
            rArr = Arr(L)
        else
            rArr = Arr(ir)
            Arr(ir) = Arr(1)
            ir = ir - 1
            if ir = 1 then
              Arr(1) = rArr
              exit sub
            end if
        end if
        i = L
        j = 2 * L  
        while j <= ir
            if j < ir then
                if Arr(j) < Arr(j + 1) then j = j + 1
            end if
            if rArr < Arr(j) then
                Arr(i) = Arr(j)
                i = j
                j = 2 * j 
            else
                j = ir + 1
            end if
        wend
        Arr(i) = rArr
    loop
end sub

sub succeed()
'成功后提示
dim tempArr:tempArr=D2Arr(solution)
sortA tempArr
alert "已經結束!最小值是:" &  tempArr(1)
set Rows=ppp.getElementsByTagName("TR")
for i=0 to Rows.length-1
if  trim(Rows(i).cells(2).innerText) =cstr(tempArr(1)) then
Rows(i).style.backgroundColor="red"
end if
next
end sub

function isFinish(D)
'輸入:D返回后的結構體 Dictionary
'輸出:是否完成的狀態bool
dim re:re=false
if D.Count>0 then
dim tempArr:tempArr=D.Keys
dim K:K=tempArr(0)
if trim(D.Item(K)(1))="" then re=true 
end if
isFinish=re
end function
 </SCRIPT>
123456下一頁閱讀全文
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲电影免费观看高清完整版在线观看| 久久久久久国产精品久久| 91av在线影院| 国产精品在线看| 欧美另类69精品久久久久9999| 亚洲视频在线视频| 亚洲xxxx妇黄裸体| 日本精品久久电影| 欧美日韩在线视频一区| 尤物精品国产第一福利三区| 伊人久久男人天堂| 亚洲欧洲一区二区三区久久| 4438全国亚洲精品在线观看视频| 日韩精品在线看| 岛国视频午夜一区免费在线观看| 8x拔播拔播x8国产精品| 久久久久久久久久婷婷| 91在线|亚洲| 欧美大尺度电影在线观看| 亚洲精品av在线播放| 蜜月aⅴ免费一区二区三区| 色狠狠久久aa北条麻妃| 97在线观看免费高清| 亚洲欧美成人在线| 欧美日韩第一页| 91理论片午午论夜理片久久| 欧美在线视频网| 精品美女久久久久久免费| 国产视频精品va久久久久久| 成人av.网址在线网站| 亚洲一区二区久久久久久久| 国产精品国内视频| 欧美视频一区二区三区…| 欧美视频免费在线| 北条麻妃99精品青青久久| 2021国产精品视频| 国产不卡精品视男人的天堂| 日韩在线观看高清| 欧美电影免费观看| 欧美精品情趣视频| 欧美最猛黑人xxxx黑人猛叫黄| 久久国产精品久久久久久久久久| 色综合伊人色综合网站| 欧美成人午夜激情| 亚洲一区二区在线播放| 国产精品视频网| 国产亚洲精品美女| 久久精品国产亚洲7777| 亚洲欧美日韩一区二区在线| 国产一区二区三区在线播放免费观看| 欧美激情第一页xxx| 亚洲自拍高清视频网站| 国产91精品黑色丝袜高跟鞋| 久久精品成人欧美大片古装| 日韩免费在线电影| 青草成人免费视频| 欧美成人在线影院| 久久69精品久久久久久国产越南| 国产精品视频一区国模私拍| 国产精品国模在线| 精品国模在线视频| 亚洲午夜色婷婷在线| 国产一区二区三区精品久久久| 欧美日韩不卡合集视频| 日韩一区二区在线视频| 欧美日韩国产第一页| 国产精品99一区| 亚洲护士老师的毛茸茸最新章节| 美日韩精品视频免费看| 日本成人在线视频网址| 日韩电影中文字幕一区| 久久韩剧网电视剧| 午夜精品久久久久久久99黑人| 97香蕉久久超级碰碰高清版| 精品亚洲一区二区三区| 亚洲精品久久久久久久久| 97在线精品视频| 日韩电影中文字幕在线观看| 久久全国免费视频| 国产成人久久久精品一区| 国产丝袜一区二区三区免费视频| 日韩一区二区欧美| 亚洲激情久久久| 亚洲第一综合天堂另类专| 久久精品91久久香蕉加勒比| 亚洲肉体裸体xxxx137| 成人激情电影一区二区| 国产69精品99久久久久久宅男| 欧美中文字幕视频| 欧美亚洲激情视频| 国产精品aaa| 亚洲综合国产精品| 国产97在线|日韩| 一本一道久久a久久精品逆3p| 欧美激情亚洲综合一区| 日韩欧美精品在线观看| 欧美在线一区二区三区四| 国产一区二区动漫| 亚洲精品99久久久久| 欧美亚洲第一区| 日韩在线观看视频免费| 日韩av免费观影| 日韩的一区二区| 久久免费在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 91精品啪在线观看麻豆免费| 欧洲成人免费aa| 国产日韩在线播放| 国产精品主播视频| 国产精品丝袜久久久久久高清| 久久久国产视频| 亚洲第五色综合网| 日韩av电影国产| 欧美在线不卡区| 精品亚洲国产成av人片传媒| 国内免费久久久久久久久久久| 国产精品欧美久久久| 97在线视频免费观看| 亚洲一区二区三区乱码aⅴ| 91高清视频免费观看| 中文字幕av一区二区三区谷原希美| 精品国产一区二区三区在线观看| 中文字幕精品一区久久久久| 国语自产精品视频在线看抢先版图片| 亚洲va国产va天堂va久久| 韩国视频理论视频久久| 黄网站色欧美视频| 亚洲视屏在线播放| 欧美日韩一区二区免费在线观看| 亚洲福利视频二区| 高清欧美电影在线| 欧美色道久久88综合亚洲精品| 精品国产一区二区三区久久| 中文字幕欧美日韩在线| 久久久久久亚洲| 久久久久久久久久国产精品| 韩国v欧美v日本v亚洲| 亚洲欧美色图片| 日韩av成人在线| 国产精品啪视频| 日本国产高清不卡| 黑人巨大精品欧美一区二区一视频| 欧美日韩一区二区精品| 91九色国产社区在线观看| 97香蕉超级碰碰久久免费的优势| 国产欧美在线播放| 国产精品久久久久久久久久久久久| 亚洲第一网站免费视频| 色综合伊人色综合网站| 成人h猎奇视频网站| 成人xvideos免费视频| 亚洲欧洲在线免费| 国产精品一区二区久久国产| 狠狠操狠狠色综合网| 成人做爰www免费看视频网站| 亚洲缚视频在线观看| 国产三级精品网站| 亚洲精品视频网上网址在线观看| 欧美电影免费观看大全| 亚洲最大激情中文字幕| 欧美激情国产日韩精品一区18| 668精品在线视频| 欧美亚洲激情在线| 成人美女免费网站视频|