• ベストアンサー

配列要素の演算

初歩的な質問ですみません。Ruby初心者です。 Rubyの配列を使って以下のようなことをしたいのですが可能でしょうか? a = [2, 4, 6] b = 2 c = a / b # => [1, 2, 3] 配列aの全要素を定数bで割ろうとしています。 NArrayを使えば可能なようですが、 Ruby標準の配列でこのようなことはできますか? 可能でしたらその方法をご教授ください。

  • Ruby
  • 回答数3
  • ありがとう数10

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.3

Enumerable#mapを使います。 -------------------- a = [2,4,6] b = 2 c = a.map{|x| x/b} p c -------------------- 実行結果は [1, 2, 3] となります。 直接 配列 a を更新したい場合は、 a.map!{|x| x/b} とします。

yosuzume
質問者

お礼

なるほど! 思いつきませんでした、、。 皆様、ご回答頂きありがとうございますm(_ _)m

その他の回答 (2)

回答No.2

ただの Array で実現するなら、 a = [2, 4, 6] b = 2 c = a.map{|e| e / b} という感じでしょうか。

  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

標準で入っているVectorを使えば可能です。 require "matrix" a=Vector[2, 4, 6] b=2 c=a/b

関連するQ&A

  • 配列の要素追加について

    配列Aがあり、その配列に別の要素を加えた配列Bを作成するためにはどのようにすればよいのでしょうか? Aをコピーしたものに要素を一つ加えてと考えたのですが。。。 つまり char[] a = {'a', 'b', 'c'}; char ch = 'd'; とあったときに、aにchを加えて char[] b = {'a', 'b', 'c', 'd'}; を作成したいです。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • 配列内の要素を元にソート

    配列内の要素を元に配列をソートしたいと考えております。 例) [0] => a,b,5 [1] => a,c,1 [2] => a,d,2 といった配列がある場合に [0] => a,c,1 [1] => a,d,2 [2] => a,b,5 と言った具合にソートは出来るのでしょうか? どなたかご存知の方、ご教授ください。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • 2つの配列要素を比較して、一致しない要素を別配列にしたい

    配列A、配列B、配列C と仮にします。 配列Aから、配列Bと一致しなかった要素の値を配列Cに入れる (一致した分を除外したい) みたいなことをデータベースを使用せずに、Perlで実現したいのですが可能でしょうか?

    • ベストアンサー
    • Perl
  • 配列の要素数に変数を入れたいときには

    よろしくお願いします。 配列の要素数には定数しか入れられないのですが,どうしても変数を入れたいときは,それを引数として関数を呼び出すしか方法はないでしょうか。 具体的には,scanfで手に入れたint型の変数を要素数とする配列を宣言したいのですが,どうすれば良いでしょうか。 ご教授ください。

  • C#かJavaで、配列の中から別の配列を探し出す

    お世話になります。 C#かJava(CやC++は入れない)で、特定の配列の中に、該当する 配列があるかどうかを調べるメソッドがあれば、教えてください。 例えば… int[] a={0,0,0,1,2,3,4,5,6,7}; int[] b={3,4,5}; ならば、『5』が返ってくるなどです。 力技では、aの配列を順にみていき、bの一番目と同じなら、 お互いの配列の次の要素を比較…などとやっていくのですが、 これらの方法を、標準のメソッドがあれば…と思い、 質問させていただきました。 以上、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 配列から別の配列の要素を削除する方法

    ある配列array_aに、100件の文字列要素が格納されています。 別の配列array_bには、80件の文字列要素が格納されています。 array_aの要素、array_bの要素共に重複するものはありません。 array_b中に存在する要素はすべてarray_a中にも存在します。 array_aにあり、array_bにはない要素で構成されたarray_cの作り方を教えてください。 例えば $array_a=array("a","b","c","d","e","f","g"); $array_b=array("e","b","d"); なら、 $array_c=array("a","c","f","g") になります。 配列array_aとarray_bは、 $array_b=array("b","b","d"); であったり、 $array_a=array("a","a","b","c","d","e","f","g"); といった「重複する要素を含むパターン」はありません。要素はすべてユニークです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 配列の要素の入り方

    こんばんは。 現在C言語のプログラミングを勉強しています。 まだまだ初心者で基礎も十分には理解できていないので、とても基本なのかもしれませんが質問させていただきます… 例えば以下のような、配列に文字を入力するだけのプログラムを作ったとします。 --------------------------------- #include<stdio.h> main(){  int data[10];  printf("input - ");  fgets(data,10,stdin); } --------------------------------- これを実行し、 input - abc のように「abc」と入力すると、配列にはどのように入るのですか?  data[0]=a, data[1]=b, data[2]=c となるまではわかるのですが、data[3]からdata[9]には何が入るのでしょうか。配列のクリアはしていない状態です。 改行とnullが入る、というように聞いたのですが、これらはどのような順(?)で配列に入っているのかがわかりません。 よろしくお願いします。

  • Fortran77で多次元配列を並び替え(ソート)する方法

    Fortran77のプログラミングを勉強しています。 多次元配列の並び替えをする時に、各行の組み合わせを変えずにある列に含まれる要素についてソートを行いたいのですが、やり方が分かりません。どなたか方法を教えてくださいますでしょうか。 例えば、 (1,1)A,(1,2)あ,(1,3)3 (2,1)B,(2,2)い,(2,3)1 (3,1)C,(3,2)う,(3,3)2 という3×3の配列を読み込み、3列目を昇順に並べ替えて、 (1,1)B,(1,2)い,(1,3)1 (2,1)C,(2,2)う,(2,3)2 (3,1)A,(3,2)あ,(3,3)3 とした上で、別のファイルに出力したいのです。 初歩的な質問で恐縮ですが、どなたかご教授よろしくお願い致します。

  • 配列のからの要素に代入

    Aと言う配列 Array ( [0] => jpg [1] => [2] =>jpg [3] => [4] => [5] => ); があった場合 Bと言う配列 Array ( [0] => [1] => [2] => [3] => ); をB[0]をA[1]、B[1]をA[3]、B[2]をA[4]、のように当て込んでいく方法を模索しております。 どなたかご存知の方、ご教授ください。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • char* 宣言での配列要素アクセスについて

    char* 宣言での配列要素アクセスについて char*型で宣言したポインタ変数に対して 配列の要素でアクセスすると落ちてしまいます。 理由がよくわかりません。 以下コードになります。 (コードA) char* pA = "123456789"; pA[2] = 'A'; 以下のコードの場合は問題ありません。 (コードB) char pB[] = "123456789"; pB[2] = 'B'; 両者の違いがいまいちよく分かりません。 コードAでpA[2]のアドレスを確認すると、 pAのアドレス[+2]を指しているので問題ないともうのですが、 間違っているのでしょうか? pAに対して特別な操作はしていません。 ご教授お願いいたします。

専門家に質問してみよう