重複しない乱数【メモ:関数】

投稿者:128 mini fragile 投稿日:2013/06/07 18:35

テストさえしてないです。
def RAND(n)#とりあえず自分が必要なもの
	a=createArray()
	i=0
	while i < n
	a[i] = i
	i=i+1
	end
	
	i=0
	while i < n
	x = rand(n)
	y = a[i]
	a[i] = a[x]
	a[x] = y
	i=i+1
	end
return a
end

############################################################
############################################################

def setRand(n)#0からn-1までの重複しない乱数を作成
	if !getVariable("重複しない乱数")
	setVariable("重複しない乱数", createArray())
		if n
		getVariable("重複しない乱数")[0] = n
		else
		getVariable("重複しない乱数")[0] = 10
		end
	else
		if n
		getVariable("重複しない乱数")[0] = n
		end
	end
	
	i=0
	while i < getVariable("重複しない乱数")[0]
	getVariable("重複しない乱数")[i+1] = i
	i=i+1
	end
	
	i=1
	while i < getVariable("重複しない乱数")[0]+1
	x = rand(getVariable("重複しない乱数")[0])+1
	y = getVariable("重複しない乱数")[i]
	getVariable("重複しない乱数")[i] = getVariable("重複しない乱数")[x]
	getVariable("重複しない乱数")[x] = y
	i=i+1
	end
end

############################################################

def getRand()#setRandで作成した乱数を取得。 尽きた時は-1を返す
	if 1 < getArrayLength(getVariable("重複しない乱数"))
	return popArray(getVariable("重複しない乱数"))
	else
	return -1
	end
end

############################################################

def checkRand(k)#まだ切り出せるかチェック kをtrueにすると残りの数が表示される
	if k
		return getArrayLength(getVariable("重複しない乱数"))-1
	else
		if 0 < (getArrayLength(getVariable("重複しない乱数"))-1)
		return true
		else
		return false
		end
	end
end

コメントする

コメントするには、ログインする必要があります。

コメント一覧

コメントはありません。