###質問内容
現在、Rubyプログラミングの勉強がてらオイラープロジェクトの問題を解くことに注力しています。
しかしながら、計算量が多いプログラムに対して、私のbashは途中で計算を止めてしまうようです。
例えば、
https://projecteuler.net/problem=12
の問題に対して以下に記す「実行したプログラム」のようなプログラムを実行したのですが、bashで経過を見ていると途中で計算を止めてしまいます。
実行後、毎度カレントディレクトリには.filename.rb.swpというファイルが容量12288で保存されています。
これが関係あるのでしょうか??
作成しているプログラム自体は雑なものなのですが、変数をいじって計算量を減らせば最後まで計算してくれるので、macかbash自体になんらかの設定が必要なのではないかと考えています。
ご助力いただければ幸いです。
###実行したプログラム
test.rb
def factorization(num) tmp = num factors = [] i = 2 num = num.to_i loop do if (num % i) == 0 then num = num / i factors.push(i) break if num == 1 else i = i + 1 end end array = factors.uniq array << tmp array2 = array array.each{|i| array.each{|j| if array.max % (i * j) == 0 then array2 << (i * j) end } } return array2.sort.uniq end def triangular_number(num) i = 0 number = 0 loop do dif = 1 + i number = dif + number i += 1 break if i >= num end return number end n = 50 i = 2 loop do array = factorization(triangular_number(i)).uniq if array.size == n then p i p triangular_number(i) p array break end i += 1 end
で上記のプログラムをbashで実行しました。
ruby test.rb
###使用している環境
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
Copyright (C) 2007 Free Software Foundation, Inc.
回答4件
あなたの回答
tips
プレビュー