【ハッシュメニュー】> 【ハッシュ関数を作ってみよう】STEP: 2 やや複雑なハッシュ (paizaランク C 相当) [難易度: 1034 ±38]
※リンク先へ移動するためには[paiza]へのログインが必要です。
前問で実装したハッシュは、とてもシンプルなものでした。本問では、やや複雑なハッシュを計算してみましょう。
n 個の整数 x_1, x_2, ..., x_n と、整数 a, b, mod が与えられます。各 x_i について、以下のハッシュ関数を用いてハッシュ値を計算してください。
H(x) = (a * x + b) % mod
入力値(例)
5 3 4 7
12
9
1
3
7
出力値(例)
5
3
0
6
4
解答例
1 2 3 4 5 6 7 8 9 10 |
<?php list($n, $a, $b, $mod) = explode(" ", trim(fgets(STDIN))); for($i = 0; $i < $n; $i++) { $x = trim(fgets(STDIN)); $h = ($a * $x + $b) % $mod; echo $h. "\n"; } ?> |