HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0310
WHOS特定の数字を取り出してその確率などを求める。4解決


WHOS

リンク

2012/3/10(Sat) 19:54:41|NO.45351

たびたびお世話になっております。
現在仕事の関係で資料などの統計をするために自身でプログラムを組んでいます。


「0~36の37種類の数字を.区切りで記録しているログテキスト」 [0.15.13.26.35.1.12.1.1.0].txt を読み込んで、各数字の出現回数を、数字全体に対する分数と百分率で表示する。 例: [0.15.13.26.35.1.12.1.1.0].txt という10個の数からなるテキストファイルを解析して、 それぞれの出現回数(と百分率)を表示する。 0:2/10,20% 1:2/10,20% 2:...(中略) 26:1/10,10% 35:1/10,10% (数字:txtの中にある数字/全ての数字の数,確率)というデータを出力する。

と言う単純なソースコードを組んでいます。(説明下手で申し訳ないです。)
それで中々上手くいかなかったので質問をします。


data = "15,20,30,2,1,3,24,21,31,34,21" i = 0 repeat getstr kekka, data, i, ',' TESTS +1 if strsize = 0 : break i += strsize loop TESTS-1 //上記の処理で全ての数字を数える repeat 37 i = 0 repeat value = instr(data, i, ""+NoCount) if value = -1 : count = cnt : break i + value + 1 loop if count = 0 : : else : print ""+NoCount+":"+count+"/"+TESTS+","+double(count)/TESTS*100+"%" : TEST +1 //出力 NoCount = 1+cnt loop print "\n全ての処理を完了しました。"

上記のソースコードを組んだのですが(長くてすいません。)
34などの数字だと3と4とで数えられてしまって中々上手く行きません
修正もしくはアドバイスをしていただけないでしょうか
よろしくお願いします。長文失礼しました。



この記事に返信する


てれてれ

リンク

2012/3/10(Sat) 20:03:10|NO.45352


data = "15,20,30,2,1,3,24,21,31,34,21" split data,",",pdata : TESTS = stat //splitで分割、分割個数はstatに代入される repeat 37 : cn = cnt : count = 0 repeat TESTS if pdata(cnt) = cn : count++ //数える loop if count != 0 : mes ""+cnt+":"+count+"/"+TESTS+","+double(count)/TESTS*100+"%" loop print "\n全ての処理を完了しました。"



WHOS

リンク

2012/3/10(Sat) 20:57:53|NO.45353

おおお・・・・。凄いです。
まさかここまで簡潔に書けるものだとは思いませんでした。
勉強になりました
ソースまで頂いて本当にありがとうございました!!



暇人

リンク

2012/3/10(Sat) 21:53:46|NO.45356

もう解決してるけど、ちょっと違う方法
dataの数が数十個ぐらいしか無いならメリットは無いが・・・


data = "15,20,30,2,1,3,24,21,31,34,21" split data,",",pdata : TESTS = stat //splitで分割、分割個数はstatに代入される dim cdata,37 //カウンタに使う分を初期化 repeat TESTS cdata( int(pdata(cnt)) )+ //数字文字列の0~36を配列要素にしてカウント loop repeat 37 c=cdata(cnt) if c : mes strf("%2d:%2d/%d,%5.2f%%",cnt,c,TESTS,double(c)/TESTS*100) loop print "\n全ての処理を完了しました。"



WHOS

リンク

2012/3/12(Mon) 15:10:35|NO.45382

他にも色々な方法があるんですね。
とても参考になりました。回答ありがとうございますです。



ONION software Copyright 1997-2023(c) All rights reserved.