Project Euler #004 - 3桁の整数の積の回文数

問題

左右どちらから読んでも同じ値になる数を回文数という。 2桁の数の積で表される回文数のうち、最大のものは 9009 = 91 × 99 である。

では、3桁の数の積で表される回文数のうち最大のものはいくらになるか。

方針

2桁の数の積とその文字列を反転したものが等しければ回文数としてリストに格納。

リストの数を降順にソートして先頭の値が答え。

感想

同じ変数を数値と文字列でぐりぐり。 配列の並びを一発で逆転、reverse関数超便利。

回答

Project Euler #003 - 素因数分解

問題

13195 の素因数は 5、7、13、29 である。

600851475143 の素因数のうち最大のものを求めよ。

方針

m/n=q:mをnで除して余が0である場合はその素数は素因数の一つ。

nを最小の素数である2から始めて、剰余が0かつ除算の答えqがn以上である間、nで割り切り続ける。

剰余が0でなくなったらnを素因数として保存、次の除数n=n+1で同様に割り続ける。

除算の答えqが除数より小さくなったら終了。

最後の答えqが0でない場合は最後の素因数として保存する。

感想

中学で習った素因数分解と同じ理屈。速度は遅いけどわかりやすさ優先で。

ていうか他の方法知らないし。

 

回答

Project Euler #002 - フィボナッチ数列

問題

フィボナッチ数列の項は前の2つの項の和である。 最初の2項を 1, 2 とすれば、最初の10項は以下の通りである。

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

数列の項の値が400万を超えない範囲で、偶数値の項の総和を求めよ。

Note:この問題は最近更新されました。お使いのパラメータが正しいかどうか確認してください。

方針

先頭から順番に数列を作って行ってgrepで偶数の値のみ絞り込む。

感想

特になし。

回答

Project Euler #001 - 1000未満の3か5の倍数

問題

10未満の自然数のうち、3 もしくは 5 の倍数になっているものは 3, 5, 6, 9 の4つがあり、 これらの合計は 23 になる。

同じようにして、1,000 未満の 3 か 5 の倍数になっている数字の合計を求めよ。

方針

3の剰余がないもしくは5の剰余がない整数を総当たりで探した。

感想

mapとgrepの使い方を覚えたのでヨカッタ。

回答

Metroスタイルアプリ Developer Camp 受講メモ(6/28、大阪)

6/28の Microsoft 関西支社 で行われた『Visual Studio で実現する次世代 Windows アプリ開発セミナー~ Powered by Go Metro "Developer Camp"~』に参加した時のメモおよび感想です。

※従来のWindowsアプリは『Desktopスタイルアプリ』と呼称。


◆Metroスタイルアプリの概要

◇Metroスタイルアプリの特徴 - Desktopスタイルアプリとの相違点

☆Windows8でのみ動作
  • Windows8自体がMetroスタイルUIが基本となる
  • Office等の従来のDesktopスタイルアプリとの共存も可能
  • Desktopスタイルアプリは専用のDesktopアプリ(Sandbox)内で動作する

例)Officeを起動するとOS付属のDesktopアプリが起動し、その中でアプリが動作する。

☆全画面表示が基本
  • タブレットPCで動かすことを前提としたUI
    • 基本はタッチパネル操作だが、非タッチパネル環境でのマウスによる操作も可能
☆配布はWindows Store経由
  • iPhoneAndroidと同じ囲い込み型
  • アプリのガイドラインに基づいた審査がある
  • 業務アプリを個別に配布するにはSideloadingというテクニックを利用(要Active Directory)
    • 同じPCを複数のユーザーで使用する場合、ユーザー毎にインストールが必要(バイナリは1つ)=>インストールと言うよりはアプリを使用するための登録処理に近い
☆アプリケーションのライフサイクルはAndroidと同じイメージ
  • アプリケーションを終了するという概念はない。OSが必要に応じてプロセス/メモリ管理を行う。
  • プロセス/メモリ管理のアーキテクチャはWin32 APIとかなり違う。ユーザーの自由度は低い。
  • ファイルシステムも同様にユーザーの自由度は低い。ユーザーデータは許可されたディレクトリにのみ作成可能

◇Metroスタイルアプリの開発環境

◆Metroスタイルアプリの設計における注意点

必ずしも従う必要はないが、ガイドラインに沿わないアプリはWindows Storeの審査に通らず一般に配布しにくくなるため注意する。タブレットPCで使用するのが前提となるので、情報の閲覧性、UIの操作性を考慮すると、ガイドラインを把握しておくのは非常に重要となる。
Metro スタイル アプリの設計ガイド

  • 一画面に情報を詰め込み過ぎない。
    • 交通標識がデザインのモデルとなっている。
  • ユーザーが操作に惑わされずコンテンツに集中できる環境を提供するのが最も重要とされる。
  • 常に画面に表示するのはコンテンツに関係のあるものだけ。
    • 設定のようなものはポップアップメニューに一時的に表示する。
  • コントロールのグループ化は余白で行う。Desktopアプリのように線と箱を用いない。
  • 日本語フォントがMSゴシックからMeiryoに変わった。
  • ウィンドウの可視範囲内にすべての情報を収める必要はない(タッチパネルのフリック操作により横/縦スクロールが容易なため)。
  • タブレットPCの様々な姿勢での使用を考慮したデザインが必要(必要に応じて)。
    • 縦/.横画面ローテート、両手持ちの際の操作を考慮したコントロール配置 etc


◆感想

  • コマンドラインアプリが未だに通用しているのと同様にDesktopスタイルアプリも残っていくとは思いますが、今後クライアントのPC環境がタブレット型主体になっていくことを考えると無視はできないと思います。
  • Windows 8も含めあまりにもアーキテクチャが変わるので、Windows 8 PCを導入するなど案件がなくても少しずつ対応してMetro環境に慣れ、他の優れたアプリのUIを研究を進めていくことを提案します。
  • 個人的にはAndroid OSに比べたらアプリケーションの設計ポリシーが明確で信頼出来ると感じました。
  • ここでの説明は省略しましたが、アプリケーション配布方法や収益モデルも後発サービスの特権でAndroidiPhoneの欠点を補いよく練られていると感じました。
  • MicrosoftのタブレットPC向けOSに対する力の入れようが強く感じられる密度の高いセミナーでした。


以上

囲碁の棋譜再生&印刷ソフトを探しています

子供が囲碁を習い始めて最近は棋譜並べをしているというので紙で出力できる棋譜再生ソフトを探していますがなかなか見つかりません。
Windows形式であったり(Bootcampで切り替えるのがめんどくさい)、Mac版はしばらくメンテされてなくて使えなくなっていたり。
Web版のアプリケーションはJavaやJS、Flashベースなので印刷しづらいのよね。
SGF形式の棋譜データを複数枚碁盤表示の棋譜に変換してPDF形式で出力してくれるような
Webサービスもしくはアプリケーションがあればよいのですが。
自分で作る鹿!?

今回は手持ちの SmargGo Kifu というiPhoneアプリで再生した棋譜をハードコピーして印刷することで対応しました。このアプリは有料なのですが35000件あまりのプロの棋譜があらかじめ収められているのではっきりいってお買い得です(廉価版の姉妹製品も多数あり)。自分で棋譜を入力したり、SGF形式にエクスポートしてメールで送信する機能もついています。

SGF形式棋譜データ

Anders KierulfというSmartGoの作者の方が考案したボードゲームなどの棋譜(?)を保存するためのフォーマットです。
可搬性を重視しているためテキストファイルで表現されています。
棋譜を再生できるWebサービスは必ずといっていいほどこのフォーマットに対応しています。

碁盤表示

SmartGo Kifuの棋譜再生機能では、Step-by-stepで一手ずつ確認できる機能(碁盤モード)と、従来の紙ベースで見かけるような複数枚棋譜表示(棋譜モード)の2つの表示形式に対応しています。
棋譜再生画面右上の碁盤アイコンをクリックすると表示形式を切り替えることができます。

f:id:kiyotune:20120722222334j:image:w240 f:id:kiyotune:20120722222342j:image:w240
f:id:kiyotune:20120722222343j:image:w240 f:id:kiyotune:20120722222344j:image:w240
f:id:kiyotune:20120722222336j:image:w240 f:id:kiyotune:20120722222341j:image:w240
f:id:kiyotune:20120722222352j:image:w240 f:id:kiyotune:20120722222349j:image:w240
f:id:kiyotune:20120722222345j:image:w240 f:id:kiyotune:20120722222350j:image:w240
f:id:kiyotune:20120722222353j:image:w240 f:id:kiyotune:20120722222357j:image:w240
f:id:kiyotune:20120722222359j:image:w240 f:id:kiyotune:20120722222356j:image:w240