<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3ARandom_list</id>
	<title>Module:Random list - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3ARandom_list"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:Random_list&amp;action=history"/>
	<updated>2026-06-24T21:39:33Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Module:Random_list&amp;diff=4845387&amp;oldid=prev</id>
		<title>imported&gt;For Each ... Next：​雖然可以輸入一個很大的數字表示全取，但輸入負數表示全部隨機好一點</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:Random_list&amp;diff=4845387&amp;oldid=prev"/>
		<updated>2026-03-13T13:27:44Z</updated>

		<summary type="html">&lt;p&gt;雖然可以輸入一個很大的數字表示全取，但輸入負數表示全部隨機好一點&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;quot;strict&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- 解析 wiki 列表（* 每行）&lt;br /&gt;
local function parse_wikilines(text)&lt;br /&gt;
    local items = {}&lt;br /&gt;
    for _, line in ipairs(mw.text.split(text, &amp;#039;\n&amp;#039;)) do&lt;br /&gt;
        line = mw.text.trim(line)&lt;br /&gt;
        line = line:gsub(&amp;#039;^%*%s*&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
        if line ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            table.insert(items, line)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return items&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- 解析自訂分隔符（Lua pattern）&lt;br /&gt;
local function parse_by_separator(text, sep)&lt;br /&gt;
    local items = {}&lt;br /&gt;
    for _, part in ipairs(mw.text.split(text, sep)) do&lt;br /&gt;
        part = mw.text.trim(part)&lt;br /&gt;
        if part ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            table.insert(items, part)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return items&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.randitems(frame)&lt;br /&gt;
    -- 1. 參數&lt;br /&gt;
    local text  = frame.args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
    local count = tonumber(frame.args.count) or 1&lt;br /&gt;
    local sep   = frame.args[2]&lt;br /&gt;
&lt;br /&gt;
    -- 2. 解析列表&lt;br /&gt;
    local items&lt;br /&gt;
    if sep and sep ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        -- 自訂分隔符模式&lt;br /&gt;
        items = parse_by_separator(text, sep)&lt;br /&gt;
    else&lt;br /&gt;
        -- wiki 列表模式&lt;br /&gt;
        items = parse_wikilines(text)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local n = #items&lt;br /&gt;
    if n == 0 then return &amp;#039;&amp;#039; end&lt;br /&gt;
    if count &amp;lt; 0 then&lt;br /&gt;
        count = n&lt;br /&gt;
    elseif count &amp;lt; 1 then&lt;br /&gt;
        count = 1&lt;br /&gt;
    elseif count &amp;gt; n then&lt;br /&gt;
        count = n&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- 3. 隨機洗牌（頁面穩定）&lt;br /&gt;
    local seed = tonumber(mw.hash.hashValue(&lt;br /&gt;
        &amp;#039;md5&amp;#039;,&lt;br /&gt;
        mw.title.getCurrentTitle().prefixedText&lt;br /&gt;
    ):sub(1, 8), 16)&lt;br /&gt;
&lt;br /&gt;
    math.randomseed(seed + os.clock() * 100000)&lt;br /&gt;
&lt;br /&gt;
    for i = n, 2, -1 do&lt;br /&gt;
        local j = math.random(i)&lt;br /&gt;
        items[i], items[j] = items[j], items[i]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- 4. 輸出&lt;br /&gt;
    local result = {}&lt;br /&gt;
    for i = 1, count do&lt;br /&gt;
        result[#result + 1] = &amp;#039;* &amp;#039; .. items[i]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return table.concat(result, &amp;#039;\n&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;For Each ... Next</name></author>
	</entry>
</feed>