質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

1回答

842閲覧

Rubyにおける連立方程式の複数解列挙によるメモリ圧迫について

YukiFujimura

総合スコア10

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2017/08/24 09:08

size・・・変数の数
var = 変数(複数)
new_equ = 連立方程式(単数or複数)


[*1..n].repeated_permutation(size).select{|var| new_equ}

上記の式を実行すれば,連立方程式の複数解列挙が可能ですが,列挙パターンが多すぎて,メモリが圧迫され,結果PCが固まってしまいます.
そこで,一気に全列挙するのではなく,1つ列挙する毎にその結果を引数として他の処理に渡し,その処理を終えるとそのパターンはメモリから消去し,次のパターンを求めるという形にしたいです.
この方法が分かる方がおりましたら,ご教授願いたいです.
よろしくお願いいたします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

もとからrepeated_permutationはブロックなしで呼べば1つずつ生成するので(るりま)、.selectのブロックの中身かと思われます。

.selectは「ブロックを評価した値が真であった要素を全て含む配列を返します」が、Rubyでは0も真なので、条件を満たさないものをきちんとnilfalseに変換しなければ、すべてがselectされてしまいます。

投稿2017/08/24 09:16

編集2017/08/24 09:17
maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問