Category: Develop

14-2.Random

2. Random 
Mathクラスには擬似乱数を発生させるrandomメソッドがあったが、それをもう少し高機能にしたものが、このRandomクラスである。 

import java.util.Random 

コンストラクタ
Random() 
新しい乱数ジェネレータを作成する
Random(long seed)
 long型のシードを使って乱数ジェネレータを作成する
メソッド
protected int next(int bits)

次の擬似乱数を生成する

void nextBytes(byte[] bytes)

ランダムバイトを生成し、ユーザ指定のバイト配列に配置する

double nextDouble()

乱数ジェネレータのシーケンスを使って、0.0〜1.0の範囲で一様分布のdouble型の擬似乱数を返す

float nextFloat()

乱数ジェネレータのシーケンスを使って、0.0〜1.0の範囲で一様分布のfloat型の擬似乱数を返す

double nextGaussian()

乱数ジェネレータのシーケンスを使って、平均0.0、標準偏差1.0のガウス(「正規」)分布のdouble型の擬似乱数を返す

int nextInt()

乱数ジェネレータのシーケンスを使って、一様分布のint型の擬似乱数を返す

int nextInt(int n)

乱数ジェネレータのシーケンスを使って、0から指定された値の範囲(0は含むが、その指定された値は含まない) で一様分布の int 型の擬似乱数を返す

long nextLong()

乱数ジェネレータのシーケンスを使って、一様分布のlong型の次の擬似乱数を返す

void setSeed(long seed)

単一のlong型のシードを使って、乱数ジェネレータのシードを設定す

   
sample) MathクラスのrandomメソッドとRandomクラスを用いた場合の例
import java.io.*;
import java.util.*;

class Test {
    public static void main(Stirng args[ ]) {
         for ( int i = 0 ; i < 10 ; i++ )
                 System.out.println( i + ":" + Math.random( ));

         System.out.println( );

         Random rnd new Random( );
       for( int i = 0 ; i < 10 ; i++ )
            System.out.println( i +":" + rnd.nextDouble( ) );
       }
}

C:\Java\>java Test
0:0.9490168285406363
1:0.1315265909356933
2:0.8805518855113684
3:0.022296367930474403
4:0.9159107068525388
5:0.45377169510241844
6:0.1521866646374057
7:0.2681536733194758
8:0.5647590024766241
9:0.5428563464748609

0:0.9448960819203688
1:0.93056882849094
2:0.11423327297311248
3:0.007178140412706258
4:0.945599389167783
5:0.40711585241316184
6:0.7639053958760349
7:0.19925106572398155
8:0.6933292289366854
9:0.35117261168665725

C:\Java\>

マルチファイル一括置換作業メモ

Mac で複数ファイルの一括置換作業をすることになった。Windows ではフリーのアプリがたくさんあるが、Mac ではなかなか適当なものが見つからず、コマンドラインでの作業がベストと判断。

 

■コマンドライン

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

find ./ -name "*.xml" -exec perl -i -pe 's|<br>\r||g' {} \;

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

意味:このディレクトリ以下の全てのxmlファイルの<br>を取り除く

 

□ Mac = ¥r Windows = ¥r¥n

 

□オプション

find [dir name] :条件に合うファイルを指定したフォルダ以下から探す
-name "[target name]": 名前で検索、*はワイルドカード
-exec [cmd] {}:見つかったファイルのパスを{}に代入してcmdの内容を実行
  \; : ここで終わ

perl:実行するのはperl
-e :perlを実行して処理後perlを終了
-p :置換をファイルの先頭から最後までループ
-i:複数ファイル一括処理

's|[a]|[b]|': aをbに置換
g:繰り返し置換

vi

command movement etc
Mode Change
i カーソル位置の手前から入力モードへ移行  
a カーソル位置の後から入力モードへ移行  
O カーソル位置の上の行に、行を追加し入力モードへ  
o カーソル位置の下の行に、行を追加し入力モードへ  
Esc コマンドモードへ移行  
File
vi FileName ファイル名を指定して、起動 vi -r filename
ファイル修復
:w FileName 名前を付けて保存  
:w ファイルを上書き保存  
:wq ファイルを保存して終了  
:q viを終了  
:q! 保存せずに終了  
:set number 行番号表示  
Cursor
k 上へ移動 5kとすると、5行上へ移動
j 下へ移動 5jとすると、5行下へ移動
h 左へ移動 5hとすると、5文字左へ移動
l(小文字のL) 右へ移動 5lとすると、5文字右へ移動
gg ファイルの先頭行に移動  
10G 10行目へ移動 10は任意の数字
G ファイルの末尾へ移動  
Edit
X カーソルの手前の文字を削除(バッファに記憶) P又はpで張り付け
x カーソル位置の文字を削除(バッファに記憶) P又はpで張り付け
dd カーソル位置の行を削除(バッファに記憶) P又はpで張り付け
P カーソルの手前で張り付け(バッファ内の文字列)  
p カーソルの後で張り付け(バッファ内の文字列)  
u 元に戻す  
yy カーソル行をコピー  
zz 終了(変更されている場合)は保存  
Search/Replace
/検索文字列 下へ検索 n 検索の再実行
?検索文字列 上へ検索 n 検索の再実行
:1,$s/mojiold/mojinew/gc ファイル内の文字を置換え 1=検索開始行、$=検索終了行($は最終行)、
s=置換えoption、
mojiold=検索文字、mojinew=置換え文字、
g=全て置換え(無ければ最初に見付かった文字のみ)
c=置き換える前に確認(無ければ問答無用で置き換え)
:%s/@@@/\\\/g 一括置換 :%s/pattern1/pattern2/g   ( パターン1がパターン2に全て置き換わる)
Editor Customize
set autoindent 改行時に上の行と同じく自動インデントする  
set number 行番号を表示する  
set ruler ルーラー(右下に表示される行・列の番号)を表示する  
set tabstop=数値 タブの大きさを半角スペース数で指定  
set nowrap 折り返し表示しない  
set history=数値 コマンド履歴の保存数  
set backup ファイルを保存する時にバックアップファイルを作成する  
set nobackup バックアップファイルを作成しない  
syntax on | off カラー表示のオンまたはオフ