/ / कैसे मैं सरणी में अपनी स्थिति से किसी संख्या को एक सरणी में गुणा कर सकता हूं और फिर माणिक में सरणी का योग जोड़ सकता हूं? - माणिक, सरण

मैं सरणी में अपनी स्थिति से किसी सरणी में एक संख्या को गुणा कैसे कर सकता हूं और फिर रूबी में सरणी का योग जोड़ सकता हूं? - रूबी, सरणी

मैं सरणी में अपनी स्थिति से किसी सरणी में एक संख्या को कैसे गुणा कर सकता हूं और फिर माणिक में सरणी का योग जोड़ सकता हूं? मुझे समझ में नहीं आता कि मानचित्र फ़ंक्शन के भीतर सरणी के सूचकांक तक कैसे पहुंचा जाए

उदाहरण के लिए: मैं कैसे [5, 7, 13, 2] प्राप्त कर सकता हूं जाने के लिए [5 * 0, 7 * 1, 13 * 2, 2 * 3] फिर इस सरणी का योग प्राप्त करें।

अर्थात

def array_method (numbers)
numbers.map{|i| i* ?????}
end
array_method([5, 7, 13, 2])

यह isn "t या तो इसके खाली सरणी को लौटाने का काम कर रहा है और मुझे पता नहीं है कि मैं क्या गलत कर रहा हूं

उत्तर:

उत्तर № 1 के लिए 4

आप बंदर पैच कर सकते हैं Array कक्षा यदि आप चाहते हैं कि विधि सभी सरणियों के लिए उपलब्ध हो:

class Array
def sum_with_index
self.map.with_index { |element, index| element * index }.inject(:+)
end
end

कंसोल आउटपुट

2.0.0-p247 :001 > [5, 7, 13, 2].sum_with_index
=> 39

जवाब के लिए 3 № 2
 [5,7,13,2].map.with_index(&:*).inject(:+)
# => 39

उत्तर № 3 के लिए 1
[5,7,13,2].each_with_index.map{|value,index|value*index}.reduce{|a,b|a+b}

उत्तर के लिए 1 № 4
def array_method (numbers)
ans = 0
numbers.each_with_index {| num, idx | ans += (idx) * num }
end

जवाब के लिए 0 № 5

इंजेक्शन का प्रयोग करें

def dot_product_with_index(array)
(0..array.count-1).inject(0) {|r,i| r + array[i]*i}
end