2017-04-24 10 views
-2

イムプログラムを作り、私は多くの変数を結合する必要があり、それらの文字列のほとんどが、私はちょうど2つの変数を持つこのどのように変数を結合するのですか?

name = "#{variable1}#{variable2}" 
name2 = "#{variable2}#{variable1}" 

it'sa簡単な例を行うことによって、いくつかのint型を持っていますが、アイデアのthats、何をしようとしているのですか?私は2つ以上の変数があるにもかかわらず、1つずつすべての可能性を行っていますが、多くの組み合わせがあります。それを行う簡単な方法はありますか、それを一つずつ行う必要がありますか?また、引用符を別々に書く必要がありますか?

+2

例入力と希望出力を入力してください。 "私はすべての可能性を一つ一つやっている"とはっきりしていない。 –

+0

はhttp://stackoverflow.com/questions/554666/ruby-merging-variables-in-to-a-stringに似ています – Bohdan

答えて

3

これはあなたが気にしていたことですか?

variable1 = "cat" 
variable2 = 9 
variable3 = "lives" 
arr = [variable1, variable2, variable3] 
    #=> ["cat", 9, "lives"] 
arr.join  
    #=> "cat9lives" 
+0

または単に 'arr.join' – Stefan

+3

@Stefan、時には(他の誰よりも)私は本当に愚かな気分にさせます。 :-) 一定。 (読者:以前は 'arr.each_with_object( ''){| obj、str | str <<"#{obj} "}')でした。 –

0

これらの変数のすべてまたは一部を、より簡単に組み合わせを生成する配列に入れます。

s1 = 'a' 
s2 = 'b' 
s3 = 'c' 
n = 8 
[s1, s2, s3, n].combination(3).map(&:join) 
=> ["abc", "ab8", "ac8", "bc8"] 

上記の例では、配列から3つの変数のいずれかを選択し、組み合わせを計算することを前提としています。必要に応じてその数を調整することができます。

0

プログラミングのアイデア全体は、すべての可能性を1つずつ実行しているわけではありません。 "多くの組み合わせがある":彼らは私の順列のように見える。その場合:

var1 = "aa" 
var2 = "bb" 
var3 = 2 

res = [var1, var2, var3].permutation.map{|perm| perm.join} 
p res #=> ["aabb2", "aa2bb", "bbaa2", "bb2aa", "2aabb", "2bbaa"] 
関連する問題