找回密码
 加入
搜索
查看: 3514|回复: 3

[效率算法] 随机数组的创建,求效率写法!(已解决)

[复制链接]
发表于 2012-7-25 20:53:11 | 显示全部楼层 |阅读模式
本帖最后由 gzh888666 于 2012-7-25 23:59 编辑
Global $Num[10][2]
        Global $Plus[5], $Minus[5],
我想创建一个2维数组保存随机的数字,范围 Random(0, 10, 1)
前五个$Num[$i][0]+$Num[$i][1]<=10写入$Plus[5],
后五个$Num[$i][0]-$Num[$i][1]>=0写入$Minus[5]
如$Plus[5]=[8+2=,5+5=,2+2=,2+3=,4+5=9]
$Minus[5]=[10-8=,8-5=,9-3=,....]
实际就是10以内的加减法,前五个是加法,后五个是减法,且不能重复的写入$Plus[5], $Minus[5]。
不知道我表达清楚了没有!我弄了好久,一直有问题,先谢谢大家。
发表于 2012-7-25 21:26:14 | 显示全部楼层
本帖最后由 afan 于 2012-7-25 21:38 编辑
且不能重复的写入$Plus[5], $Minus[5]。

不懂
Global $aNum[10][2]
Global $aPlus[5], $aMinus[5]
Local $nTmp1, $nTmp2, $i = 0, $x = 0
Do
        $nTmp1 = Random(0, 10, 1)
        $nTmp2 = Random(0, 10, 1)
        If $nTmp1 + $nTmp2 > 10 Then ContinueLoop
        $aNum[$i][0] = $nTmp1
        $aNum[$i][1] = $nTmp2
        $aPlus[$i] = $nTmp1 + $nTmp2
        $i += 1
Until $i = 5
Do
        $nTmp1 = Random(0, 10, 1)
        $nTmp2 = Random(0, 10, 1)
        If $nTmp1 - $nTmp2 < 0 Then ContinueLoop
        $aNum[$i][0] = $nTmp1
        $aNum[$i][1] = $nTmp2
        $aMinus[$x] = $nTmp1 - $nTmp2
        $i += 1
        $x += 1
Until $i = 10

#include <Array.au3>
_ArrayDisplay($aNum, '$aNum')
_ArrayDisplay($aPlus, '$aPlus')
_ArrayDisplay($aMinus, '$aMinus')
 楼主| 发表于 2012-7-25 22:26:01 | 显示全部楼层
回复 2# afan
先感谢A版,可能我没表达清楚
最后得到的是
$Plus[5]=[8+2=,5+5=,2+2=,2+3=,4+5=9]
$Minus[5]=[10-8=,8-5=,9-3=,....]
这两个数组,每个算式不能重复,每一个$Num[$i][0],$Num[$i][1]保存的是这个算式的两个随机值!
发表于 2012-7-25 22:48:08 | 显示全部楼层
Global $aNum[10][2]
Global $aPlus[5], $aMinus[5]
Local $nTmp1, $nTmp2, $i = 0, $x = 0
Do
        $nTmp1 = Random(0, 10, 1)
        $nTmp2 = Random(0, 10, 1)
        If $nTmp1 + $nTmp2 > 10 Or IsDeclared($nTmp1 & ' + ' & $nTmp2) Then ContinueLoop
        $aNum[$i][0] = $nTmp1
        $aNum[$i][1] = $nTmp2
        Assign($nTmp1 & ' + ' & $nTmp2, 0)
        $aPlus[$i] = $nTmp1 & ' + ' & $nTmp2 & ' = '
        $i += 1
Until $i = 5
Do
        $nTmp1 = Random(0, 10, 1)
        $nTmp2 = Random(0, 10, 1)
        If $nTmp1 - $nTmp2 < 0 Or IsDeclared($nTmp1 & ' - ' & $nTmp2) Then ContinueLoop
        $aNum[$i][0] = $nTmp1
        $aNum[$i][1] = $nTmp2
        Assign($nTmp1 & ' - ' & $nTmp2, 0)
        $aMinus[$x] = $nTmp1 & ' - ' & $nTmp2 & ' = '
        $i += 1
        $x += 1
Until $i = 10

#include <Array.au3>
_ArrayDisplay($aNum, '$aNum')
_ArrayDisplay($aPlus, '$aPlus')
_ArrayDisplay($aMinus, '$aMinus')

评分

参与人数 1金钱 +80 贡献 +20 收起 理由
gzh888666 + 80 + 20 感谢!真高手也!

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-21 01:13 , Processed in 0.083948 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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