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

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

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

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

Q&A

解決済

2回答

1138閲覧

配列内の計算について

probaseball

総合スコア113

Ruby

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

0グッド

0クリップ

投稿2015/12/19 20:37

いつもお世話になっております

今回の質問は、題名の通り配列内の計算です。

ruby

1 2arr1 = [3, 2, 4, 3, 3, 3, 3, 3, 4, 3, 4]#回数 3 4arr2 = [2, 1, 1, 2, 2, 2, 3, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 3, 2, 1, 1, 2, 2, 1, 1, 1, 1, 3, 1, 1, 2, 1, 2, 2]#足す数 5

arr1の要素の回数分をarr2で足したいのですがどうすればよろしいですか?

※arr[0]は3なので、arr2の要素を0から3回計算する(arr2[0..2])。次に、arr[1]は2なので、2回計算する。この時arr2はarr2[2]まで読み込んだので、次はarr2[3]から2回計算、つまりarr2[3..4]。こういう流れをarr1の要素数分やりたいのですがどのようにかけばうまくいきますか?

よろしくおねがいします

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

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

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

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

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

guest

回答2

0

ベストアンサー

Ruby

1arr1 = [3, 2, 4, 3, 3, 3, 3, 3, 4, 3, 4]#回数 2 3arr2 = [2, 1, 1, 2, 2, 2, 3, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 3, 2, 1, 1, 2, 2, 1, 1, 1, 1, 3, 1, 1, 2, 1, 2, 2]#足す数 4 5##### 案1 6n=0 7sums = arr1.map do |x| 8 n += x 9 arr2[(n-x)...n].inject(&:+) 10end 11p sums 12 13##### 案2 14arr2dup = arr2.dup 15sums = arr1.map do |x| 16 arr2dup.shift(x).inject(&:+) 17end 18p sums

投稿2015/12/20 01:07

otn

総合スコア84499

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

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

probaseball

2015/12/20 19:07

ありがとうございます。 パターンがいろいろあるんですね、勉強になりました
guest

0

arr1 = [3, 2, 4, 3, 3, 3, 3, 3, 4, 3, 4]#回数 arr2 = [2, 1, 1, 2, 2, 2, 3, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 3, 2, 1, 1, 2, 2, 1, 1, 1, 1, 3, 1, 1, 2, 1, 2, 2] arr1.each{|x| print(arr2.slice!(0,x)) }

投稿2015/12/20 00:13

ozwk

総合スコア13521

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問