Ruby
配列から要素の取り出し
140302でも同じことをしたが、もう一度やってみる。
ary=[0,1,1,2,3,5,8,13,21,34,55,89,144]
puts "#{ary}"
puts "#{ary.select{|i| i%2==1 }}"
ary.each_with_index do |i, j|
if i%2==1 then
puts "#{j+1},#{i}"
end
end
出力結果
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]
[1, 1, 3, 5, 13, 21, 55, 89]
2,1 ←元の配列における順番も出力。
3,1
5,3
6,5
8,13
9,21
11,55
12,89
2014年3月9日日曜日
2014年3月6日木曜日
140306
Ruby
Array#permutationを用いて、下の覆面算を解いてみる。
SEND
+MORE
-----
MONEY
+MORE
-----
MONEY
(0..9).to_a.permutation(8) do |s, e, n, d, m, o, r, y|
next if s == 0 or m == 0
send = s*1000 + e*100 + n*10 + d
more = m*1000 + o*100 + r*10 + e
money = m*10000 + o*1000 + n*100 + e*10 + y
if send+more == money then
print "#{send} + #{more} = #{money}"
end
end
2014年3月2日日曜日
140302
Ruby
イテレータ
irb(main):001:0> [1,2,3,4,5].map{|i|i*2}
=> [2, 4, 6, 8, 10]
irb(main):002:0> [1,2,3,4,5].map{|i|i%2==1}
=> [true, false, true, false, true]
irb(main):003:0> [1,2,3,4,5].select{|i|i%2==1}
=> [1, 3, 5]
イテレータ
irb(main):001:0> [1,2,3,4,5].map{|i|i*2}
=> [2, 4, 6, 8, 10]
irb(main):002:0> [1,2,3,4,5].map{|i|i%2==1}
=> [true, false, true, false, true]
irb(main):003:0> [1,2,3,4,5].select{|i|i%2==1}
=> [1, 3, 5]
2014年3月1日土曜日
2014年2月24日月曜日
140224
Ruby
正規表現
「/^\s*$/」の意味
^ 行頭とマッチするパターン
\s 空白文字
* 0回以上の繰り返し
$ 行末とマッチするパターン
以上より、
/^\s*$/ 空白のみの行にマッチ
正規表現
「/^\s*$/」の意味
^ 行頭とマッチするパターン
\s 空白文字
* 0回以上の繰り返し
$ 行末とマッチするパターン
以上より、
/^\s*$/ 空白のみの行にマッチ
2014年2月23日日曜日
140223(2)
Ruby
pメソッドでつまづく。
具体的には、
a,b,*c=1,2,3,4,5
p [a,b,c]
とすべきところ(ちなみに、出力結果は[1,2,[3,4,5]])を
a,b,*c=1,2,3,4,5
p[a,b,c]
としていた。
学んだこと
「かっこがあっても、詰めてはいけない!」
pメソッドでつまづく。
具体的には、
a,b,*c=1,2,3,4,5
p [a,b,c]
とすべきところ(ちなみに、出力結果は[1,2,[3,4,5]])を
a,b,*c=1,2,3,4,5
p[a,b,c]
としていた。
学んだこと
「かっこがあっても、詰めてはいけない!」
140223
「たった2日でできるRuby」
一昨日、Rubyが使えるようになりたいと思い、
p.98~p.99
プログラム内の「:」は「;」の誤り。 (サポートページに指摘されている。)
一昨日、Rubyが使えるようになりたいと思い、
早速、昨日上記の本を買ってきて、
全部読んでみた。
以下のページに誤植があった。
プログラム内の「:」は「;」の誤り。 (サポートページに指摘されている。)
p.128
puts("#{m-1} 月は #{n}")はputs("#{n+1} 月は #{m}")の誤り。
p.188
purs(array.sort)はputs(array.sort)の誤り。
2013年12月8日日曜日
131208
Excelでランダムシャッフル
1〜nまでをランダムシャッフルするには、大体次のイメージ
前 後
RAND() 1 RANK()
RAND() 2 RANK()
…
RAND() n RANK()
2013年11月2日土曜日
131102
BATIC®
11/1 第26回試験≪試験日:12月15日(日)≫の申込登録の受付を終了いたしました。
↑
今日本屋に行ったとき思い出す OTL
まぁ、来年の7月まで別の試験の勉強し、受験しよ。
今度(第27回)の申込(5月あたま〜6月あたま)は仕事が忙しくても忘れんとこ。
ちなみに、どれくらいの試験なのかここに残しておこう。(データはBATIC®の公式ページより)
2012年度(年2回)
実受験者 4,190人
Controller Level 220人
Accounting Manager Level 645人
Accountant Level 2,041人
Bookkeeper Level 948人
2013年度(第25回)
実受験者 2,066人
Controller Level 33人
Accounting Manager Level 190人
Accountant Level 1,035人
Bookkeeper Level 645人
11/1 第26回試験≪試験日:12月15日(日)≫の申込登録の受付を終了いたしました。
↑
今日本屋に行ったとき思い出す OTL
まぁ、来年の7月まで別の試験の勉強し、受験しよ。
今度(第27回)の申込(5月あたま〜6月あたま)は仕事が忙しくても忘れんとこ。
ちなみに、どれくらいの試験なのかここに残しておこう。(データはBATIC®の公式ページより)
2012年度(年2回)
実受験者 4,190人
Controller Level 220人
Accounting Manager Level 645人
Accountant Level 2,041人
Bookkeeper Level 948人
2013年度(第25回)
実受験者 2,066人
Controller Level 33人
Accounting Manager Level 190人
Accountant Level 1,035人
Bookkeeper Level 645人
2013年5月28日火曜日
130528
TextToCoLumnsメソッドで分割
Sheet1のA1,A2,A3にそれぞれ
1,22,333
2,33,444,5555
3,44,555,6666,77777
Sub 分割()
Dim i As Integer
Worksheets.Add 'ワークシートの追加
With Range(Cells(1, 4), Cells(3, 4))
For i = 1 To 3
.Cells(i).Value = Worksheets("Sheet1").Cells(i, 1).Value
Next
.TextToColumns _
Destination:=Cells(1, 4), _
DataType:=xlDelimited, _
Comma:=True
End With
End Sub
Sheet1のA1,A2,A3にそれぞれ
1,22,333
2,33,444,5555
3,44,555,6666,77777
の値が入っているものとし、これを新しいシートの
D1,E1,F1に
1,
22,
333,
D2,E2,F2,G2に
2,
33,
444,
5555,
D3,E3,F3,G3,H3に
3,
44,
555,
6666,
77777,
とカンマ毎に分割して値を入れるようにしてみる。
Sub 分割()
Dim i As Integer
Worksheets.Add 'ワークシートの追加
With Range(Cells(1, 4), Cells(3, 4))
For i = 1 To 3
.Cells(i).Value = Worksheets("Sheet1").Cells(i, 1).Value
Next
.TextToColumns _
Destination:=Cells(1, 4), _
DataType:=xlDelimited, _
Comma:=True
End With
End Sub
登録:
投稿 (Atom)