Gitでは、SVNなどと違ってリビジョン番号のような順序付きの数字ではなく、 ハッシュのような識別子でコミットが管理されています。 なので、時系列にそってコミットIDを列挙したい場合は、 以下のように git rev-list コマンドを使えば良いようです。

   1  % git rev-list 2dfb3...(snip)...cf210

これで、指定したコミットより過去(指定したコミットを含む)のハッシュが時系列にそって得られます。 先頭は一番新しいもので、末尾が一番古いものです。

   1  % git rev-list HEAD

とすると、全てのコミットのハッシュを時系列にそって取得出来ます。

posted by Png genki on Fri 28 Nov 2008 at 19:57

友人のisanoくんが「Rubyわかんねー」と言いながら頑張って解いたみたいなので、僕もRubyで書いてみる。

問題内容を引用。

1~512の数の書かれたカードが1枚ずつ、左から小さい順に、「1,2,3,4,・・・,511,512」と並んでいます。いま、次のような作業を行うことにします。

ア. 前から奇数番目のカードをすべて取り除く

イ. 前から偶数番目のカードをすべて取り除く

 まず、この作業を、ア→イ→ア→イ→・・・の順に、カードが残り1枚になるまで繰り返して行うことにします。

 このとき、最後に残るカードに書かれた数字を答えてください。

isanoくんが後で見てもわかるように、丁寧にコメントまでつけちゃうぜ。

以下、僕の書いたコード

   1  #/usr/bin/env ruby
   2  
   3  # Integerクラスを拡張する
   4  class Integer
   5   
   6    # 値が偶数かどうかを調べる
   7    # 偶数 -> true
   8    # 奇数 -> false
   9    def even?
  10      return (self % 2).zero?
  11    end
  12  
  13  end
  14  
  15  numbers = (1..512).to_a  
  16  
  17  # 以下, 指定された通りにカードを取り除いていくコード
  18  # (ア) 奇数番目のカードを抜く = 添え字が偶数のカードを抜く
  19  # (イ) 偶数番目のカードを抜く = 添え字が奇数のカードを抜く
  20  
  21  flag = true    # (ア)のときtrue, (イ)のときfalse. 最初は(ア)
  22  
  23  # カードが1枚になるまで続ける
  24  while numbers.size > 1 do
  25  
  26    # Arrayで何かを取り除く操作をするのは、rejectが簡単
  27    # ここではrejectの破壊的メソッドreject!を使う
  28    numbers.reject!{|i| numbers.index(i).even? == flag }
  29  
  30    flag = !flag # (ア)/(イ)の入れ替え
  31  
  32  end
  33  
  34  puts numbers
  35  #=> 342

こんなもんでどうや!!

追記 (2008/12/02 16:35) 気づけばいろんな人がやってた。

Ritsなはてなーばっかで困る。

posted by Png y_tsuda on Fri 28 Nov 2008 at 17:51
Contents
Gitでコミットオブジェクトを時系列にそって列挙する方法
算数にチャレンジ!! 第624回問題 をRubyで解く
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
KingofSmack: Here also good reads for this mobile applicatio... '14-5
Spencer: You don't have to re-compile it, this version w... '14-4
staiano: Any chance we can get a recompile for 10.9? '14-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ