Project Euler Problem031

知的欲求に駆られて、Project Eulerを再開しました。
Project Euler - PukiWiki





※以下ネタバレ






答えは出たのですが、本当に正しいのか確信が持てない・・。


ロジックの解説はこちら。
10円,50円,100円の硬貨がそれぞれ十分にたくさんあるとき10円,50円の組... - Yahoo!知恵袋



邪悪流はこちら。
http://d.hatena.ne.jp/myokoym/20120815/1345042249

iOS/Android用将棋アプリ「将皇」の楽しみ方

実戦詰将棋1日分(入門〜上級の4問)を解く。

ポイント
  • 詰まったら考えこまずにヒントボタンを押すこと。

帰路

勝ち切れ将棋を1日分、全てのレベルで勝ち切る。

ポイント
  • 初手を指す前に方針を決める。
    • 攻め切る
      • 詰ます
      • 遊んでいる飛車を捌く
      • など
    • 受け切る
      • 駒を全部取る
      • 入玉する
      • など
  • 自分で納得できる勝ち方ができるまで繰り返す。
  • レベルは1→0→2→3の順にやる。
  • 何回かやって勝てなければ、待ったボタンを解禁する。

棋力&脳力アップが見込めます。

英語環境のEclipseを日本語表示する方法

インストール時に日本語を選択しているのに英語で表示される場合、
以下の手順で日本語化できるはずです。(Eclipse系のIBM Rational製品も同様)


1.設定ファイル(eclipse.iniなど)に、以下の2行を追加。

-Duser.language=ja
-Duser.country=JP


2.念のためクリーンオプションをつけて起動。(不要かも)

  1. デスクトップにショートカット作成
  2. 右クリック>プロパティ
  3. 実行ファイルパスの後ろに「 -clean」オプションを追加


日本語だいすき。



■参考リンク
http://www.crystal-creation.com/software/technical-information/tool/ide/eclipse/setup/japanese.htm
Eclipse起動オプション
国際化プログラミングの常識 (1/3):プログラマーの常識をJavaで身につける(5) - @IT
言語コード:ISO 639:1988
国コード:ISO 3166 Codes

Wine上のアプリケーションの設定ウィンドウの下が切れる対策

Wineのシステムフォント変更で解決しました。

http://mattintosh.blog.so-net.ne.jp/2012-04-04_wine_system_fonts


1.レジストリエディタ起動

wine regedit


2.バックアップ取得
メニュー>レジストリレジストリのエクスポート


3.システムフォントの場所
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes


4.システムフォント変更

  • MS Shell Dig
  • MS Shell Dig 2

上記2項目を好きなフォントに変更する。
例:TakaoGothic Regular


フォント一覧は以下のコマンドで見れます。(Ubuntuの場合)

fc-list | grep "Gothic"

UbuntuTips/Desktop/InstallFont - Ubuntu Japanese Wiki



上記手順で、サクラエディタをWine上で動かすときに必須の設定「ウィンドウ毎にアクセラレータテーブルを作成する(Wine用)」がよりによって隠れていたのを、無事に表示できました。

文字化けした全角ファイル名の文字コードを再帰的に変換するスクリプト

convmvがインストールできない環境のために自作。
Perlは大抵あるでしょう、ということで。


File::Find::finddepth()を使うことによって、再帰的に変換できるようになりました。

File::Find - サブディレクトリを再帰的に処理する - Perl入門ゼミ

日本語ファイル名の文字コードを変換するスクリプト(Perl版)

追記:修正版をアップしました。
文字化けした全角ファイル名の文字コードを再帰的に変換するスクリプト - myhd


以前の記事のやり方だと、文字列と文字コードの組み合わせによっては上手く動かない(文字化けしたファイルのmvに失敗する)ことがわかったので、Perlで書き直しました。

#!/usr/bin/perl

use strict;
use warnings;

use File::Find;
use File::Copy;
use Encode;
#use Encode::Guess;

my $target_dir = $ARGV[0];

find (\&convmv_euc_to_sjis, $target_dir);

sub convmv_euc_to_sjis() {
  # ファイルのみを対象とする場合
  # return unless (-f $_);

  # 変換前文字コードがEUC-JPのみを対象とする場合
  # my $enc = guess_encoding($_, qw/euc-jp shiftjis/);
  # my $enc_name = ref $enc ? $enc->name : $enc;
  # return unless ($enc_name eq 'euc-jp');

  my $str = $_;
  Encode::from_to($str, 'euc-jp', 'shiftjis');
  move $_, $str or die $!;
}

ただ、変換対象がディレクトリだと、中身へchdir(find関数は内部でchdirしながら処理している)するときにエラーとなってしまうため、対策を考え中。