I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Natsprinter>> Jeg ville nok placere randomize allerøverst i koden, så den ikke bliver kørt, hver gang findTal() køres. Min erfaring er nemlig, at gentagen brug af randomize i samme kode, vil resultere i en meget forudsigelig kode af en eller anden grund.
Det kan dog være, at det ikke gælder, når den er placeret i en funktion?
<% Set plade = Server.CreateObject("Scripting.Dictionary") Set plader = Server.CreateObject("Scripting.Dictionary") Randomize
'sorter et array Function BSort(arr) Dim i, j, x For i=0 To UBound(arr)-1 For j=i+1 To UBound(arr) If arr(i) > arr(j) Then x = arr(i) arr(i) = arr(j) arr(j) = x End If Next Next BSort = arr End Function
For i=1 To 1000 Do plade.RemoveAll
For j=0 To 14 Do num = Int(Rnd*99)+1 Loop While plade.Exists(num)
plade.Add num, 1 Next
strPlade = Join(BSort(plade.Keys), ",")
Loop While plader.Exists(strPlade)
plader.Add strPlade, i Next
For Each key In plader Response.Write "Plade " & plader(key) & ": " & key & "<br>" Next %>
<% Set pladecheck = Server.CreateObject("Scripting.Dictionary") Set plader = Server.CreateObject("Scripting.Dictionary")
Randomize
'sorter et array Function BSort(arr) Dim i, j, x For i=0 To UBound(arr)-1 For j=i+1 To UBound(arr) If arr(i) > arr(j) Then x = arr(i) arr(i) = arr(j) arr(j) = x End If Next Next BSort = arr End Function
For i=0 To Ubound(plade,1) Response.Write "<tr style=""width:50px"">"
For j=0 To Ubound(plade,2)
s = plade(i, j) If s = 0 Then s = " "
Response.Write "<td style=""width:35px;text-align:center"">" & s & "</td>" Next
Response.Write "</tr>" Next
Response.Write "</table>" End Sub
' træk ny plade Function NewPlade() Dim i, j Dim num, plade, column ReDim plade(2,8)
pladecheck.RemoveAll
' 3 rækker For i=0 To 2 ' 5 tal i hver række j = 0 Do num = Int(Rnd*90)+1 ' [1-90]
' er tallet allerede udtrukket? If Not pladecheck.Exists(num) Then
column = Int(num/10)
If num = 90 Then ' "gamle ole" skal ligge sammen med 80'erne column = column-1 End If
' kolonne optaget? If plade(i, column) = 0 Then plade(i, column) = num pladecheck.Add num, 1 j = j+1 End If End If Loop Until j=5 Next
NewPlade = plade End Function
' træk x plader For i=1 To 10 Do plade = NewPlade() Call ShowPlade(plade) strPlade = Join(BSort(pladecheck.Keys), ",") Loop While plader.Exists(strPlade) Next %>
' træk x plader For i=1 To 10 Do plade = NewPlade() Call ShowPlade(plade) strPlade = Join(BSort(pladecheck.Keys), ",") Loop While plader.Exists(strPlade)
plader.Add strPlade, plade ' **************** Next
Ja, den bestemmer antallet. ShowPlade er i øvrigt heller ikke placeret korrekt i den kodestump, den skal først kaldes, når pladen med sikkerhed er unik
Prøv med denne nye sub, og følgende ændring i NewPlade:
' sorter kolonne Sub SortColumn(ByRef plade, column) Dim i, j, x
For i=0 To 2 If plade(i, column) > 0 Then For j=i+1 To 2 If plade(j, column) > 0 And plade(i, column) > plade(j, column) Then x = plade(i, column) plade(i, column) = plade(j, column) plade(j, column) = x End If Next End If Next End Sub
' træk ny plade Function NewPlade() Dim i, j Dim num, plade, column ReDim plade(2,8)
pladecheck.RemoveAll
' 3 rækker For i=0 To 2 ' 5 tal i hver række j = 0 Do num = Int(Rnd*90)+1 ' [1-90]
' er tallet allerede udtrukket? If Not pladecheck.Exists(num) Then
column = Int(num/10)
If num = 90 Then ' "gamle ole" skal ligge sammen med 80'erne column = column-1 End If
' kolonne optaget? If plade(i, column) = 0 Then plade(i, column) = num pladecheck.Add num, 1 j = j+1 End If End If Loop Until j=5 Next
' sorter kolonner For i=0 To UBound(plade, 2) Call SortColumn(plade, i) Next
er du ikke en ven at lave hele koden som den skal være :-) tak
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.