1. paizaラーニングトップ
  2. レベルアップ問題集
  3. ハッシュメニュー応用編(言語選択)
  4. 問題一覧 Haskell(Beta)編
  5. 画像のハッシュ値 Haskell(Beta)編

ハッシュメニュー応用編のサムネイル
画像のハッシュ値 Haskell(Beta)編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

ハッシュ関数は様々なデータが入力として与えられます。画像もそのうちのひとつです。例えば、画像のハッシュ値は同一画像の判定や類似度の計算に使うことができます。本問では、画像を入力とするハッシュ関数を実装してみましょう。

.# からなる縦 6 マス横 6 マスの大きさの画像 (picture) が与えられます。以下のハッシュ関数 H を用いてハッシュ値を計算してください。

picture の i 行目 j 列目に対応する整数 i, j (1 ≦ i, j ≦ 6) を用いて、

H(picture) = 各 # の (i2 * j) の和 % 100

つまり、各 # についてその位置 i, j を求めて (i2 * j) を計算し、それらの和を 100 で割った余りがハッシュ値となります。

入力される値

s_1
s_2
...
s_6


  • i 行目に picture の i 行目にあたる文字列 s_i が与えられます。

  • 入力値最終行の末尾に改行が1つ入ります。
    文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
    期待する出力

    上記のハッシュ関数で計算されるハッシュ値を 1 行で出力してください。

    また、末尾に改行を入れ、余計な文字、空行を含んではいけません。

    H(picture)

    条件

    すべてのテストケースにおいて、以下の条件をみたします。

  • s_i は半角記号 #, . のいずれかで構成される長さ 6 の文字列 (1 ≦ i ≦ 6)
  • 入力例1

    ####..
    #...##
    ####..
    #.....
    #.....
    #.....

    出力例1

    25

    入力例2

    ......
    ......
    ......
    ......
    ......
    ......

    出力例2

    0

    問題一覧へ戻る

    ページの先頭へ戻る