KLU3K 发表于 2009-10-15 23:53:09

我写了9行代码来实现随机生成30个16进制数,可以精简一下么?我觉得我写的很累赘。

本帖最后由 KLU3K 于 2009-10-18 18:06 编辑

$rand = Int(Random(1000000000, 9999999999))
$rand2 = Int(Random(1000000000, 9999999999))
$rand3 = Int(Random(1000000000, 9999999999))
$rand4 = Int(Random(1000000000, 9999999999))
$result = Hex($rand, 8)
$result2 = Hex($rand2, 8)
$result3 = Hex($rand3, 8)
$result4 = Hex($rand4, 6)
MsgBox(0, "Debug", $result & $result2 & $result3 & $result4)我是菜鸟,不会写,只能写成这样比较累赘的样子。能否精简一下啊?要是我想随机生成100个岂不是要累死?

netegg 发表于 2009-10-16 00:17:56

本帖最后由 netegg 于 2009-10-17 15:58 编辑

$n = ""
$i = 0
do
$i += 1
$n = $n & Hex(Int(random(1000000000, 9999999999)), 8)
until $i =4
msgbox(0, "Debug", $n)

不过不太明白你那个8,8,8,6是什么意思

newx 发表于 2009-10-16 00:56:57


$nVal = ""
for $X=1 To 9
   $nVal &= aaa() & @CRLF
next
   msgbox(0,0,$nVal)

Func aaa()
   $val = Hex(Int(Random(1000000000, 9999999999)),8)
   Return $val
EndFunc

KLU3K 发表于 2009-10-18 10:24:19

2# netegg


目的是生成一组由30个字符组成的16进制码!

就要30个字符,多一个都不要。所以。8+8+8+6=30

78391493 发表于 2009-10-18 10:37:46

Dim $Hex
For $i = 0 To 3
        $Hex &= Hex(Int(Random(1000000000, 9999999999)), 8)
Next
$Hex = StringTrimRight($Hex, 2)

iftodo 发表于 2009-10-18 11:13:13

本帖最后由 iftodo 于 2009-10-18 11:14 编辑


#include <Array.au3>
Local $s = 100 ;要生成的个数
Dim $Hex[$s]
For $i = 0 To $s - 1
        $Hex[$i] = Hex(Random(1000000000, 9999999999, 1), 8)
Next
_ArrayDisplay($Hex)
顺便说一下我的观点.行数并不是判断一段代码的惟一标准.实用至上

KLU3K 发表于 2009-10-18 18:02:50

5# 78391493

这位兄弟的方法不错。满足需求。感谢!

KLU3K 发表于 2009-10-18 18:05:36

6# iftodo

感谢回复,虽然没打到题目要求,但是也非常感谢你。向高手致敬!{:3_92:}
页: [1]
查看完整版本: 我写了9行代码来实现随机生成30个16进制数,可以精简一下么?我觉得我写的很累赘。