Coding_Gamesメモ_Benford's_law

Coding_Gamesメモ_Benford's_law

javaの学習にCoding_Games を知り、学習の記録としてメモ。
To debug:

System.err.println( );

を使うとデバックしやすくなる。(エラー出力は評価に影響しない)

内容

ベンフォードの法則を使い、不正口座か判断する

ルール

口座履歴の最初の桁の1~9までの数字のどれか1つでもベンフォードの法則の比率からプラスマイナス10%を超えていれば"true"を出力する

ベンフォードの法則の割合

最初の桁の数字 : 出現率

1: 30.1%
2: 17.6%
3: 12.5%
4: 9.7%
5: 7.9%
6: 6.7%
7: 5.8%
8: 5.1%
9: 4.6%

インプット

1行目 口座履歴の内容量(N)
2行目から 口座履歴の内容

アウトプット

true / false

使用したクラス

String

(char[]) = String.toCharArray();
char配列を出力

考え方

  • 最初の桁を探して割合を出す
  • 割合がベンフォードの法則からプラスマイナス10%を超えていたら出力を"true"にする
(int) = (char C) - '1'

とすると文字が数字になるため後の処理が楽になる

Coding_Games:https://www.codingame.com/
String (Java Platform SE 8) - Oracle Cloud:https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html