0005ccc68b80a3e151ea4f3ae62f9000

2019-01-11 londoneCreated on 2019-01-11 by londone

    仕事

    MySQL周りに微妙に詳しくなるなどした。

    数学

    実質Haskell。

    今日はDESを実装する。

    実装してあるものをググろうと思ったけど、標準パッケージくらいしかなかったのでWikipediaみて実装する。

    Data Encryption Standard

    それとWikipediaよりもわかりやすい図を作っているページも見つけたのでそちらも置いておく。

    DESとは?

    ちなみにC言語での実装はあったんだけど普通に読めなかったので諦めた。

    ところでこいつで一番わからないところが例えば64ビットない場合の処理なんだけど

    64,64,24みたいなやつ。どうするんだろう。とりあえず実用化とかじゃなくて勉強なので

    最終行は64ぴったりになるように0、もしくは空白文字を入れて調整することにしよう。

    それに伴い、過去のものを修正したりした。

    -- リストを内部でn個ごとに分ける。
    nPiecesEach :: [Int] -> Int -> [[Int]]
    nPiecesEach xs n
      | (length $ take n xs) == 1 = take 1 xs : nPiecesEach (drop n xs) n
      | (length $ take n xs) < 1 = []
      | otherwise = take n xs : nPiecesEach (drop n xs) n
      -- nPieceseach [1,2,3,4,5] 2 => [[1,2],[3,4],[5]]
    

    これの強化版みたいな関数ありそう。残念ながら日本語が下手くそすぎてググりきれなかったので諦めて作った。

    -- xsがmaxに達するまでnで満たす。
    fillList :: Ord a => [a] -> a -> Int -> [a]
    fillList xs n max
      | (length xs) >= max = xs
      | otherwise = fillList (xs ++ [n]) n max
    

    流石にこれはないだろうと思ってすぐ作った。

    さて、そろそろ転換表通りにならべかえるかといったところで転換表が見つからない。

    これ自分で作るのかな・・・?作るっぽいので適当にshuffleして作りましょうね。

    ちなみに配置転換関数も作った。

    relocation :: [Int] -> [Int] -> [Int]
    relocation target relo
      | length relo <= 0 = []
      | otherwise = target !! (head relo) : relocation target (tail relo)
    

    とここまで書いたところでカフェに長居するのよくないなーと感じ始めたので一旦帰宅。途中で丸善寄ったりした。

    日常

    一年だ・・・(唐突)

    1年間立ち読みしてきた本がある。クッソ迷惑

    SICPだ。1年間チラチラみてきて、でも翻訳されたPDF公開されてるし、高いし、どうせやらないしで買わなかった。

    このタイミングで買うのはアホだと思って買うのかなりためらった。

    なぜならHaskellを初めてしまってるし、英語もあるのでそこに入る隙間はないはずだから。

    や、アホなことしたな。

    この後めちゃくちゃgaucheインストールしてEmacsの設定した。

    後は家で見逃したVtuberの放送見ながらHaskell書いてた。

    最近好きなVtuber増えすぎて時間足りない。

    後スパロボTのPV2段きてたからみた。まあ買わんけど。今時スパロボはね。

    鉄血救済でも来ない限り買いませーんwさっさと鉄血だせ

    視聴後

    Gガンとナデシコとガオガイガーと新ゲあるし買うかなってなりました。いやーw仕方ないよねw

    竜馬、ゲッタードラゴンに乗っててびっくりした。非常に良い。

    主人公機の戦闘BGMもよかった。

    うーんwこれは買い!w

    3月20日が楽しみだ。

    それまでにHaskell一通り使いこなせるようになりたいな。

    今日やったこと

    • DESの実装途中。

    • 英単語学習。

    明日やること

    • さくらインターネットでVPSとドメイン契約する・・・かもしれない。