2018-01-01から1年間の記事一覧

AOJ(問題集)8

AIZU ONLINE JUDGE: Programming Challenge 0071 Bombs Chain $<.gets.to_i.times do |co| $<.gets field = Array.new(8) {$<.gets.chomp.chars.map(&:to_i)} xi, yi = $<.gets.to_i, $<.gets.to_i blast = ->(x, y) { field[y][x] = 2 3.times do |i| [[1, …

古い Linux Kernel のインストール

askubuntu.comここが参考になる。 例えばここ、ここ、ここから linux-image-4.4.0-98-generic_4.4.0-98.121_amd64.deb linux-headers-4.4.0-98_4.4.0-98.121_14.04.1_all.deb linux-headers-4.4.0-98-generic_4.4.0-98.121_14.04.1_amd64.deb を拾ってきてひ…

Ubuntu 16.04 LTS のインストール後の設定 + VMware Player 12.1.0 の導入

AOJ(問題集)7

AIZU ONLINE JUDGE: Programming Challenge 0061 Rank Checker data = [] until (st = $<.gets.chomp) == "0,0" data << st.split(",").map(&:to_i) end data.sort! {|a, b| b[1] <=> a[1]} x = data.first.last h = {} l = 1 data.each do |d| l += 1 unles…

AOJ(問題集)6

AIZU ONLINE JUDGE: Programming Challenge 0051 Differential II $<.readlines.drop(1).map {|a| a.chomp.chars.map(&:to_i).sort}.each do |ary| puts ary.reverse.join.to_i - ary.join.to_i end 0052 Factorial II until (n = $<.gets.to_i).zero? five …

Ruby で遅延評価メモ

AOJ(問題集)5

AIZU ONLINE JUDGE: Programming Challenge 0041 Expression def solve(ary) if ary.size <= 1 return ary[0] if eval(ary[0]) == 10 else idxs = [*0...ary.size] idxs.combination(2) do |i, j| a, b = ary[i], ary[j] nxt = (idxs - [i, j]).map{|x| ary[…

Windows フリーゲーム「Almagest」を Linux で遊ぶ

ゲーム HP。 Almagest -Overture- 以下よりダウンロードする。 「Almagest -Overture-」ターン制SFシミュレーションゲーム - 窓の杜 lzh ファイルは Linux ではそのままでは解答できないので、ここでは lhasa を入れてみる。 $ sudo apt install lhasaこれで…

はがきデザインキット2019 を Ubuntu 18.10 にインストール

以前に郵便局の「はがきデザインキット」を Ubuntu にインストールする記事(参照)を書いたのですが、その手順が古くなったので再挑戦です。まずは Wine が使えるか調べます。「Wine」とは Linux で Windows のソフトを動かすためのアプリです。 $ wine --v…

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…