找回密码
 加入
搜索
查看: 1367|回复: 7

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

[复制链接]
发表于 2009-10-15 23:53:09 | 显示全部楼层 |阅读模式
本帖最后由 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个岂不是要累死?
发表于 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是什么意思
发表于 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
 楼主| 发表于 2009-10-18 10:24:19 | 显示全部楼层
2# netegg


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

就要30个字符,多一个都不要。所以。8+8+8+6=30
发表于 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)

评分

参与人数 1金钱 +5 收起 理由
KLU3K + 5 问题解决,感谢啊!

查看全部评分

发表于 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)
顺便说一下我的观点.  行数并不是判断一段代码的惟一标准.  实用至上
 楼主| 发表于 2009-10-18 18:02:50 | 显示全部楼层
5# 78391493

这位兄弟的方法不错。满足需求。感谢!
 楼主| 发表于 2009-10-18 18:05:36 | 显示全部楼层
6# iftodo

感谢回复,虽然没打到题目要求,但是也非常感谢你。向高手致敬!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-18 18:17 , Processed in 0.078484 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表