AOJ(問題集)4

AIZU ONLINE JUDGE: Programming Challenge 0031 Weight def measure(object, weight, result = []) return result.join(" ") if weight.zero? result.unshift(weight) if (object / weight).nonzero? measure(object % weight, weight / 2, result) end $<.…

暗黙の Proc化(Ruby)

[1] pry(main)> (1..4).map {|i| i + 3} => [4, 5, 6, 7] これと [2] pry(main)> (1..4).map(&->(i) {i + 3}) => [4, 5, 6, 7] は同じ。引数での & は Proc をブロックに変換するから。(正確にはさらにそれを暗黙に .call() している。) では、 [3] pry(ma…

AOJ(問題集)3

AIZU ONLINE JUDGE: Programming Challenge 0021 Parallelism $<.readlines.drop(1).map {|a| a.split.map(&:to_r)}.each do |x1, y1, x2, y2, x3, y3, x4, y4| puts((x2 - x1) * (y4 - y3) == (x4 - x3) * (y2 - y1) ? "YES" : "NO") end 単純な問題なのに…

RMagick で LoadError

RMagick に関して次のエラーが出た。Ubuntu 18.10, Ruby 2.3.4。

AOJ(問題集)2

AIZU ONLINE JUDGE: Programming Challenge 0011 Drawing Lots given = $<.readlines lines = [*0..given.first.to_i] given.drop(2).map {|x| x.split(",").map(&:to_i)}.each do |a, b| lines[a], lines[b] = lines[b], lines[a] end puts lines.drop(1) 0…

AOJ(問題集)1

AIZU ONLINE JUDGE: Programming Challenge 0000 QQ 9.times do |i| 9.times {|j| puts "#{x = i + 1}x#{y = j + 1}=#{x * y}"} end 0001 List of Top 3 Hills puts $<.readlines.map(&:to_i).sort {|a, b| b <=> a}.take(3) 0002 Digit Number $<.readlines…

「コマ大数学科」を Ruby で(3)

marginalia.hatenablog.com marginalia.hatenablog.com続きです。 引き続き 「コマ大数学科」に挑む このサイトから問題を拝借いたします(ありがとうございます!) 法政に挑戦(2009/12/8) 問題: 行列 を50個かけ合わせたとき、できる行列を求めてくだ…

「コマ大数学科」を Ruby で(2)

marginalia.hatenablog.com続きです。引き続き 「コマ大数学科」に挑む このサイトから問題を拝借いたします(ありがとうございます!) フラッグ(2008/9/11) 問題: 1m間隔で一列に13本並んだ旗をどこか1箇所の旗のところに集めたい。1度に1本の旗…

Linux Mint 19 で MG5600 が使えなくなった

Linux Mint を 19 にアップグレードしたところ、キヤノンのプリンタ MG5600 が使えなくなった。ドライバが古くなったのか調べたが、どうもよくわからない。

うんこな電子メール(2)

「コマ大数学科」を Ruby で(1)

izu-mix.comプログラミングで解けそうな問題だけ解いています。 #001 フィボナッチ数列 問題: 15段の階段を上るとき、1段上るか、2段上るか、2通りの方法を組み合わせて登ると、何通りの登り方があるか。 コード。 def fib(n) return 1 if n == 1 return 2 …

linuxBean のインストール

linuxBean は日本で開発されているディストリビューションでしたが、いまは開発が止まっているようです。しかし(開発者とは別の)奇特な方が Ubuntu 16.04 対応版を配布しておられるので、いまでも一応使うことができます。ダウンロードは以下からできます…

Haskell 覚え書き

等しくない 3 /= 5 内包表記 ghci> [x * y | x <- [2,5,10], y <- [8, 10, 11], x * y > 50] [55,80,100,110] asパターン firstLetter :: String -> String firstLetter "" = "Empty String." firstLetter all@(x:xs) = "The first letter of " ++ all ++ " …

Ruby の callcc(継続)

Ruby 2.2 から非推奨になってしまった callcc(継続)ですが…。callcc は goto みたいなものです。 callcc {|cnt| ..} とあるとき、継続 cnt が call されると、callcc {|cnt| ..} の「後へ」処理が移ります。メソッド call に引数があった場合は、それが ca…

Python のリスト内包表記と Ruby の map

内包表記は Ruby は map でいけるんじゃね?という話。pythonの内包表記を少し詳しく の例を使ってみる。例えば Python で [i for i in range(10)] というのは (0...10).map(&:itself) とか。まあこれは Array.new(10, &:itself) とか 10.times.to_a とかも…

mp4 動画ファイルの gif化 / mp3 → wav

oplern.hatenablog.comここが参考になる。ffmpeg を使う。 例えば $ ffmpeg -i a.mp4 -an -r 30 -s 300x328 -f gif a.gif -r 30 はフレームレート、-s はリサイズ(いらないかも)など。 音声の変換 qiita.commp3 → wav はこんな感じ。 $ ffmpeg -i shot1.mp…

'libva-drm.so.1' がないというエラー

Linux Mint 19 にして ffmprg を使おうとしたところ ffmpeg: error while loading shared libraries: libva-drm.so.1: cannot open shared object file: No such file or directoryのエラーが出る。ぐぐってもよくわからない。たぶん Mint のアップグレード…

Ruby/SDL でゲームパッドを使う

ゲームパッドで四角が動き回ります。Aボタンでビームの発射、Bボタンで一時停止、selectボタンで終了。sdl_sample7.rb require 'sdl' Width, Height = 300, 300 SDL.init(SDL::INIT_VIDEO | SDL::INIT_JOYSTICK | SDL::INIT_AUDIO) screen = SDL::Screen.ope…

Ruby の新しい演算子候補 / 標準添付ライブラリ 'thwait'

*>って Ruby の新しい演算子として使えることない? 右側代入とか。同様に +> とか /> とかも使えそう。 ~> とかもいけそうだけれど、-> とまちがえやすそう。関係ないけれど、早く Guild 使ってみたいな。笹田さん、がんばって下さい。 Thread の話。いくつ…

数を並び替えた最大値(Go言語)

Go

正の整数のリストを与えられたとき、数を並び替えて可能な最大数を返す関数を記述せよ。例えば、[50, 2, 1, 9]が与えられた時、95021が答えとなる。 1時間以内に解けなければプログラマ失格となってしまう5つの問題が話題に | ソフトアンテナブログ ここで R…

Ruby の Module 覚え書き

module Example def a output "inner" end def output(st) puts st end end include Example output "outer" #=>"outer" a #=>"inner" include すればモジュール内のメソッドがふつうに使える。 module Example def a output "inner" end def output(st) put…

Linux Mint 19 へのアップグレード

まず、ディスプレイマネージャが LightDM になっているかの確認が必要なようです。わたしの場合は $ cat /etc/X11/default-display-manager で /usr/sbin/mdm だったので、変更が必要でした。 $ apt install lightdm lightdm-settings slick-greeter $ apt r…

このブログのデザイン

ベースはオフィシャルテーマの Life。CSS。 body { background-color: lightyellow; font-family: "メイリオ", serif; } .entry-content p { margin: 9px 0; } .page-index #blog-title { margin: 0px; padding-bottom: 0; } div#blog-title-inner { text-al…

うんこな電子メール(1)

こんにちは!おそらくあなたが推測したように、あなたのアカウント*********@yahoo.co.jpは、私があなたからそれをあなたに伝えたように、ハッキングされました。私は国際的なハッカーグループの一員です。 2018年7月23日から2018年9月17日まで、あなたが訪…

UEFI と grub あたりのメモ

nort-wmli.blogspot.comここを参考に…。 $ su パスワード: tomoki-VJF152 tomoki # cd /boot/efi tomoki-VJF152 efi # ls BCD.LOG EFI boot-sav tomoki-VJF152 efi # cd EFI tomoki-VJF152 EFI # ls Boot Microsoft VAIO ubuntu tomoki-VJF152 EFI # ls Boot…

Python でフィボナッチ数列

最初の100個のフィボナッチ数のリストを計算する関数を記述せよ。定義では、フィボナッチ数列の最初の2つの数字は0と1で、次の数は前の2つの合計となる。例えば最初の10個のフィボナッチ数列は、0, 1, 1, 2, 3, 5, 8, 13, 21, 34となる。 1時間以内に解けな…

Ruby のクラスメソッド、特異クラスのインスタンス変数

Ruby Gold合格できました。感想と振り返り - 気軽に楽しくプログラムと遊ぶ ここでちょっとオッと思ったのでメモ。 class MyClass @v = 1 def foo @v #=>nil end class << self @v = 2 # 特異クラスへのメソッド定義はクラスメソッド定義 def foo @v #=>1 en…

Qiita のデザインパターンまとめがおもしろかった

qiita.comおもしろかったので自己流にメモしておく。 Template Method 日記を書いて、複数のフォーマットで出力することを考える。日記の内容は、タイトルと何行かの本文、フォーマットは HTML とプレーンテキスト。 class Diary def initialize(title, text…

記録メディアをまるごとコピーする(Linux)

正確にはコピーではなくて、パーティション情報も含めてメディア(例えば USBメモリ)をまるごとクローンする。 $ sudo dd if=/dev/sdc of=/dev/sdd みたいな感じ。ただし、この場合だと sdc よりも sdd の容量が多いか同じである必要がある。それから、本当…

Linux Mint(Ubuntu)でパッケージリストをバックアップする

バックアップ。 $ sudo dpkg --get-selections > /home/user/package.selections リストア。 $ sudo dpkg --set-selections /home/user/package.selections && apt-get dselect-upgrade みたいな感じ。ここからコピペしました。 新規インストールしたUbuntu…