关于作者

按出现率生成随机字符(有点难度)

上一篇 / 下一篇  2006-11-20 13:00:08

查看( 656 ) / 评论( 8 )
代码js/vbs 任意大家帮忙

<scrīpt language=vbscrīpt>
Dim sArr(5) '字符
Dim nArr(5) '出现率
Dim sNum
sNum = 441 '总出现次数

sArr(0) = "A"
sArr(1) = "B"
sArr(2) = "C"
sArr(3) = "D"
sArr(4) = "E"

nArr(0) = 10
nArr(1) = 10
nArr(2) = 30
nArr(3) = 30
nArr(4) = 20

ssNum = (sNum/100) '白分点

For I=0 To UBound(sArr)
        yNum = ssNum*nArr(I) '此字符的出现率
        document.write()
Next
</scrīpt>

[ 本帖由 ivvn 最后编辑于 2005-12-2 13:33 ]

TAG:

海浪的个人空间 海浪 发布于2005-12-02 18:30:23
不明白你的意思
小男 小男 发布于2005-12-02 19:16:59
算概率??
FFFXXX发布于2005-12-02 19:38:13
举个例子看看?
例如出现 D 10次 生成的字符是什么啊?
ivvn的个人空间 ivvn 发布于2005-12-02 20:10:34

CODE:

<BODY BGCOLOR=#035096>
<script language=vbscript>
Dim ColorArr(4)
Dim sArr(4) '字符
Dim nArr(4) '出现率
Dim TableNum

sArr(0) = "A"
sArr(1) = "B"
sArr(2) = "C"
sArr(3) = "D"
sArr(4) = "E"

ColorArr(0) = "#CCCC33"
ColorArr(1) = "#669966"
ColorArr(2) = "#FF6600"
ColorArr(3) = "#006699"
ColorArr(4) = "#003366"

nArr(0) = 20
nArr(1) = 20
nArr(2) = 20
nArr(3) = 20
nArr(4) = 20

TableNum = 21

Call CrateTable(338,338,TableNum,sArr,nArr)

Function CrateTable(TableWidth,TableHeight,TableNum,sArr,nArr)
        Dim aArr,bArr,cArr,sNum,PutStr,PutColor
        ReDim aArr(UBound(sArr)) '此字符要显示的次数
        ReDim bArr(UBound(sArr)) '已显次
        ReDim cArr(UBound(sArr)) '已显次
        sNum    = ((TableNum*TableNum)/100) '百分点

        For i=0 To UBound(aArr)
                aArr(i) = Int(sNum*nArr(i)) '此字符的出现率
                bArr(i) = 0
                cArr(i) = aArr(i)
        Next

        document.write("<table width='"& TableWidth &"' height='" & TableHeight & "' border='0' bordercolor='E3E7F2' bgcolor='E3E7F2' cellspacing='1' cellpadding='0'>")
        For j = 0 To TableNum - 1
                document.write("<tr bgcolor='ffffff'>")
                        For i = 0 To TableNum - 1
                                sRnd = RndNum(5)
                                If bArr(sRnd)>=aArr(sRnd) Then
                                        cNum = GetBigNum(cArr,sRnd)
                                        PutStr = sArr(cNum)
                                        PutColor = ColorArr(cNum)
                                        bNum = bArr(cNum)
                                        bArr(cNum) = bNum + 1
                                        cArr(cNum) = aArr(cNum) - bArr(cNum)
                                Else
                                        PutColor = ColorArr(sRnd)
                                        PutStr = sArr(sRnd)
                                        bNum = bArr(sRnd)
                                        bArr(sRnd) = bNum + 1
                                        cArr(sRnd) = aArr(sRnd) - bArr(sRnd)
                                End If
                                document.write("<td width='" & TableWidth/TableNum & "' height='" & TableHeight/TableNum & "' BgColor='" & PutColor & "'>" & PutStr & "</td>")
                        Next
                document.write("</tr>")
        Next
        document.write("</table>")
End Function

Function GetBigNum(oArr,n)
        Dim Min,S
        Min = 0
        S = oArr(0)
        For I=0 To Ubound(oArr)
                If S<oArr(I) And I<>n Then
                        S = oArr(I)
                        Min = I
                End If
        Next
        GetBigNum = Min
End Function

Function RndNum(sNum)
        Randomize
        RndNum = Int(Rnd * sNum)
End Function

</script>
马马乎乎大家也写写,我学习!

[ 本帖由 ivvn 最后编辑于 2005-12-2 20:12 ]
bobo1225发布于2005-12-03 01:16:18
确实有点意思~~~~
ivvn的个人空间 ivvn 发布于2005-12-03 20:24:51
看来看出都不太理想,期待高手写出更好的
aasvvv发布于2005-12-03 23:58:53

CODE:

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>魔王立江</title>
<style>
body{text-align:center;margin:5 0}
table{border-collapse:collapse}
body,td{font-size:12px;cursor:default}
a:link,a:visited{color:#006600;text-decoration:none}
a:hover {color:#9900FF;text-decoration:underline}
</style></head>
<body>

<script>

tabW=20
tabH=20
sNum=tabW*tabH

t="<table border=1>"
for(x=0;x<sNum;x++)
{
        if(x%tabW==0)t+="<tr align=center>"
        t+="<td height=15 width=15 id=asdf> </td>"
        if(x%tabW==tabW-1)t+="</tr>"
}
document.write(t+"</table>")

sArr=new Array()
nArr=new Array()
sArr[0] = "A"
sArr[1] = "B"
sArr[2] = "C"
sArr[3] = "D"
sArr[4] = "E"

nArr[0] = 100
nArr[1] = 100
nArr[2] = 60
nArr[3] = 60
nArr[4] = 80

t=""
for(x=0;x<sArr.length;x++)
{
        for(y=0;y<nArr[x];y++)
        {
                t+=sArr[x]
        }
}

t1=""
while(t!="")
{
        a=Math.floor(Math.random()*999999999)%t.length
        t1+=t.charAt(a)
        t=t.substr(0,a)+t.substring(a+1)
}

for(x=0;x<t1.length;x++)
{
        asdf[x].innerText=t1.charAt(x)
}
</script>





</body></html>

ivvn的个人空间 ivvn 发布于2006-01-04 20:33:56

QUOTE:

引用内容由 aasvvv 发表于 2005-12-3 11:58 PM
[code]<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>魔王立江</title>
<style>
body{text-align:c ...
魔王就是魔王头脑清晰
我来说两句

(可选)