にっき

2007/11/26 16:24:13

びんご☆


今日のおひるは
ほうれん草のおひたし + そぼろ + すくらんぶるえっぐ →三色丼
とお味噌汁の予定だったのに・・・
丼&おわんを準備してごはんをよそってお味噌汁を入れて・・・
のとこでなぜかごはんにお味噌汁をかけちゃったせいで4色丼になったにう(´・ω・`;【みかん



先週はおやすみで平日が少なかったのもあってか Lua はおやすみになってたけど
くりあして放置してあるお題もあるからさくさくご〜ご〜にう☆ヾ(・x・;【みかん

ってことでまずは『重複なし乱数
function bingo(n)
    math.randomseed(os.time());
    
    local tmp = {};
    local ret = {};
    for i = 1,n,1 do
        table.insert(tmp,math.random(999999999),i);
    end
    
    table.foreach(tmp,function(k,v) table.insert(ret,v); end);
    
    return ret;
end

require([[mylib]]);
PrintTable(bingo(arg[1]));

前回創ったまいらいぶらりな mylib.lua の PrintTable を使ってるけど中身はあいかわらず
て〜ぶるぺったんしてるだけだからおいといて☆
りすとをらんだむそ〜とor選択するのが定石な気もするけど・・・
添字をらんだむにしてりすと生成ついでにらんだむそ〜と・・・にう?(´ω`;【みかん
引数で n を指定すると
>lua5.1.exe 046-random.lua 10
[9,7,6,5,8,10,2,4,1,3]

>lua5.1.exe 046-random.lua 3
[2,1,3]

>lua5.1.exe 046-random.lua 3
[1,2,3]

>lua5.1.exe 046-random.lua 3
[2,3,1]

>lua5.1.exe 046-random.lua 10
[7,5,4,2,10,6,8,9,3,1]

こんなかんじ?

そのまま続編の『びんごの結果を整形表示』にちゃれんぢ☆
function BingoCard(n)
    local list = bingo(n);
    local fStr = [[%]] .. string.len(n) .. [[d]];
    local line = {};
    local num  = {};
    local out = function(tbl) print(table.concat(tbl,[[ ]])); end;
    
    for i = 1,n,1 do
        table.insert(line,string.format(fStr,i));
        table.insert(num,string.format(fStr,list[i]));
        
        if math.mod(i,10) == 0 then
            out(line);
            out(num);
            print();
            
            line = {};
            num = {};
        end
    end
    
    out(line);
    out(num);
end

require([[046-random]]);
print();
BingoCard(arg[1]);

重複なし乱数のそ〜すを取り込むときに結果が出てくるけど気にしない方向で(´ω`;【みかん
この書式だと2列まとめて出力しないとになるから整形部分がけっこうめんど〜かなぁ?
引数は重複なし乱数のとおんなじ n を決めるだけで
>lua5.1.exe 047-BingoCard.lua 30
[18,7,3,13,24,19,11,15,9,6,30,10,2,28,17,27,26,12,25,1,23,20,16,21,22,4,29,5,8,1
4]

 1  2  3  4  5  6  7  8  9 10
18  7  3 13 24 19 11 15  9  6

11 12 13 14 15 16 17 18 19 20
30 10  2 28 17 27 26 12 25  1

21 22 23 24 25 26 27 28 29 30
23 20 16 21 22  4 29  5  8 14


>lua5.1.exe 047-BingoCard.lua 35
[26,29,13,1,35,28,15,25,24,2,20,11,19,32,4,21,34,27,8,31,10,23,33,16,30,6,3,12,2
2,5,9,17,7,14,18]

 1  2  3  4  5  6  7  8  9 10
26 29 13  1 35 28 15 25 24  2

11 12 13 14 15 16 17 18 19 20
20 11 19 32  4 21 34 27  8 31

21 22 23 24 25 26 27 28 29 30
10 23 33 16 30  6  3 12 22  5

31 32 33 34 35
 9 17  7 14 18

こんなかんじ?

もひとつついでに『与えられた数字の桁数』もご〜ご〜☆
function digit(n)
    local f = string.sub(n,1,1) == [[-]];
    local i1,i2 = string.find(n,[[%d+]]);
    local r1,r2 = string.find(n,[[%.%d+]]);
    
    if type(i1) == [[nil]] then
        return {};
    end
    
    local i = i2 - i1 + 1;
    local d = [[1]] .. string.rep([[0]],i - 1);
    
    if f then
        d = [[-]] .. d;
    end
    
    if type(r1) ~= [[nil]] then
        i = i .. [[.]] .. r2 - r1;
        d = d .. [[.]] .. string.rep([[0]],r2 - r1);
    end
    
    return {i,d};
end

require([[mylib]]);
for i = 1,table.getn(arg),1 do
    io.stdout:write(arg[i] .. "\t");
    PrintTable(digit(arg[i]));
end


 ・
  ・
にゃんていうか正規表現ぷり〜ず・・・にう?(´・ω・`;【みかん
びみょ〜に正規表現もどきっぽいのは使えるんだけどいまいちにう・・・
引数に数値をぺちぺちつけると
>lua5.1.exe 040-digit.lua 2469 600 1 9999 0 -1 -600 -9999 1.23 -9.99 abc
2469    [4,1000]
600     [3,100]
1       [1,1]
9999    [4,1000]
0       [1,1]
-1      [1,-1]
-600    [3,-100]
-9999   [4,-1000]
1.23    [1.2,1.00]
-9.99   [1.2,-1.00]
abc     []

こんなかんじかなぁ?
なんだかあんまりすっきりしないにう(´・ω・`;【みかん

とりあえず Lua でまで出てないのをめいんに描いてみたけど
+++ てすと用やまだ出てないから放置
*** にっきにめも完了
--- いちおうくりあ済み
+++ *** 003 *** 005 *** 007 *** 009 ---
011 --- *** --- 015 --- --- 018 019 020
--- --- --- 024 025 *** --- 028 --- 030
031 --- 033 034 035 036 037 038 039 ***
041 042 043 044 045 *** *** 048 049 050
051 *** --- 054 055 --- 057 058 059 060
061 *** 063 064 065 066 067 068 069 070
071 072 073 074 075 076 --- 078 079 080
081 082 083 084 085 086 087 088 089 090
091 +++ +++ +++ +++ +++ +++ +++ +++ +++

なかんじでさすがにまだまだ残りがいっぱいにう(´ω`;【みかん


こめんと

こめんとする?



 
投稿された内容の著作権はこめんとの投稿者に帰属するっぽいです☆
また,現在 IE6 以下で Sleipnir,Lunascape,Donut じゃないゆ〜ざえ〜じぇんとからの描き込みを制限してますです☆
該当しちゃうかたはてきとうにゆ〜ざえ〜じぇんとを偽装しちゃってくださいです(´ω`;【みかん
さぶこんてんつ
前月 2024年 11月 翌月
          1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
 
19
 
20
 
21
 
22
 
23
 
24
 
25
 
26
 
27
 
28
 
29
 
30
 
             
  • あじ あじ
  • ED ED
  • えでん えでん
  • えれふぃ えれふぃ
  • ぐらぶれ ぐらぶれ
  • etc etc
  • にっき にっき

あわせて読みたい

先頭に戻る
めにう 先頭に戻る