2018年 03月 11日
先の1行FizzBuzzを反復実行して、所要時間から処理速度を判別しようとしたら、老化脳では「どのくらい?」という程度感覚が掴めなかった。
(また、処理出力をNULリダイレクトで隠してしまえばいいが、表示させてしまうと、100行×1000試行=10万行の彼方に開始時刻が流れ去っていて確認に困った) なので、一行FizzBuzzの反復試行ルーチンのさらに前後に手を入れて、開始時間を表示し→計算反復の実行→終了時間を表示し所要時間を表示する。ように書き加えてみた。 実行土台となる CMD.EXE は、スイッチ /v:on で遅延変数展開ONでコマンドプロンプトを起動しておく。 color F0&cmd/v:on/k prompt $g ^&title SandBox FIZZBUZZの1,000回実行コードはこんな感じ。 for /L %z in (1,1,1000) do FIZZBUZZこれを画面に表示させずNULへ流すには、括弧で括ってリダイレクトアウト。 (for /L %z in (1,1,1000) do FIZZBUZZ)>nul この前に現在時刻を取得し、深夜0時からのミリ秒数計算のコードをおく。(バッチ内でない限り、set/a で代入するための計算結果はコンソール表示されてしまうので、まとまるように書く) バッチ出力を最低限の改行で済ませるために、コードは set/p&nul="改行なし表示出力" の形式を多用。投稿ボックス内で自動改行されると空白などが分かりにくいから横長表示で。 (ついでにマウスオン解説表示も多用) この上には表示や計算結果や解説が表示されます。
後半もほとんど同じコードですね。 この上には表示や計算結果や解説が表示されます。
あとは、前半コード+FIZZBUZZコード+後半コード のサンドイッチで出来上がり。 (実地検証でこけまして修正) (if not defined $count set/a $count=1000)&(for /L %z in (1,1,!$count!) do FIZZBUZZ)>nul&set etime=!time!&set/p<nul=%time%-!etime!/!$count!Loop Average = &set/a ltime=(1000*(3600*!etime:~0,2!+60*(1!etime:~3,2!-100)+1!etime:~6,2!-100)+1!etime:~-2!0-1000-(1000*(3600*%time:~0,2%+60*(1%time:~3,2%-100)+1%time:~6,2%-100)+1%time:~-2%0-1000))/!$count!&echo ms1日を跨ぐ場合には、ltime が負数になるので、86400000を加え86400000で剰余を取るなどして正数化したミリ秒数を 試行回数 $countで割る。このように扱う必要もあるけど、そこまで使うケースはおそらくない。 じっこうけっか と 小さな説 #
by bucmacoto
| 2018-03-11 22:09
| &Tips;&code;
|
Comments(1)
|
おきにいりすと
closing / sleeping
イラスト
わるとも
Photo plus α
からだ と こころ
archive in this blog
統計資料・PC史資料など
勝手に応援
machine translation
以前の記事 カテゴリ
タグ
日記録(345)
市内風景(296) 小さな説(255) 写真と画像(217) 詩もどき(180) 回顧(109) おふざけ(94) science(79) 備忘Log(65) &Tips;&code;(62) おはなし(61) 夢想(57) 冬雪景(48) nursery(36) (?_?)(30) star&moon(29) my function & character(29) aha♪ / esprit(28) work_list(22) 食記録(18) 若者への手紙(17) present(13) 一画一句(11) 文・人・理(9) 春花草木(8) 記事ランキング
最新のトラックバック
検索
その他のジャンル
ファン
|
ファン申請 |
||