我有一個數組A = [a,b,c],另一個數據B = [d,e,f]。我需要執行這種類型的操作a.d + b.e + c.f(注意:這裏(。)表示複製)並得到結果。我如何使用Objective-C來做到這一點? 在此先感謝。如何乘以NSArray的各個對象並獲得總和?
-2
A
回答
1
NSNumber *myNum1 = [NSNumber numberWithInt:1];
NSNumber *myNum2 = [NSNumber numberWithInt:2];
NSNumber *myNum3 = [NSNumber numberWithInt:3];
NSArray *a = [NSArray arrayWithObjects: myNum1, myNum2, myNum3, nil];
NSArray *b = [NSArray arrayWithObjects: myNum1, myNum2, myNum3, nil];
int sum=0;
for (int i=0; i<[a count]; i++) {
NSLog(@"%@", (NSNumber*)[a objectAtIndex:i]);
sum =sum +[(NSNumber*)[a objectAtIndex:i] intValue]*[(NSNumber*)[b objectAtIndex:i] intValue];
}
NSLog(@"Sum is %d", sum);
希望這有助於
+1
更好地斷言兩個陣列具有相同的長度;否則你會得到一個範圍例外。 –
2
定義,做這樣的乘法和加法功能:
- (double)multiply:(NSArray <NSNumber *> *)vector1 withVector:(NSArray <NSNumber *> *)vector2 {
NSAssert(vector1.count == vector2.count, @"Both arrays should contain the same number of elements");
__block double result = 0;
[vector1 enumerateObjectsUsingBlock:^(NSNumber * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
double first = obj.doubleValue;
double second = vector2[idx].doubleValue;
result += first * second;
}];
return result;
}
它使用上的NSArray塊枚舉法,給了我在索引和值,我可以使用它來獲取第二個數組中相同索引的值。另請注意,我使用的是一個類型數組,所以在使用它們時我不必將值轉換爲NSNumbers。
現在你可以使用這個函數:
NSArray *a = @[@1, @2, @3];
NSArray *b = @[@4, @5, @6];
NSArray *c = @[@1, @1, @1];
double res1 = [self multiply:a withVector:b]; // => 32.000000
double res2 = [self multiply:b withVector:c]; // => 15.000000
double res3 = [self multiply:c withVector:a]; // => 6.000000
相關問題
- 1. 從NSArray的NSDictionary對象,如何獲得獨特的NSArray
- 2. 我的toString()僅返回一個對象乘以總對象數
- 3. 如何獲得一個NSArray
- 4. 我有一個問題,乘以數字,然後獲得總和。 。
- 5. NSArray乘以每個參數
- 6. jquery乘以跨度的值並獲得總數
- 7. 如何獲得兩列乘法的總和
- 8. PHP乘以總和
- 9. 從nsarray獲得n個隨機對象(例如4)
- 10. 的GroupBy各個領域並獲得數
- 11. 如何將PHP表中的兩個值相乘以獲得總數?
- 12. 總和各組,並與RunningValue
- 13. 我們如何使用mockito獲得對象的搭乘
- 14. 如何獲得另一個NSArray內的NSArray的計數?
- 15. iOS的iPhone - NSArray中得到下一個對象與以前
- 16. php - 計算價格乘以幾個項目的數量以獲得個人總計和總計
- 17. 如何獲得總和值
- 18. 多個NSArray的和普通的對象
- 19. 如何添加位於NSMutableDictionary和NSArray屬性內的NSArray對象?
- 20. 如何獲得IEnumerable的可以有子對象的子對象
- 21. 如何獲得一個對象的JavaScript
- 22. 乘以細胞和總和那麼對於一個範圍
- 23. 如何獲得數組中偶數元素的奇數和相乘的總和
- 24. NSArray的對象和鑄造
- 25. 如何遍歷這個數組並獲得總和?
- 26. 如何獲得各個項目
- 27. 從nsarray獲取對象
- 28. nsarray可以容納多少個對象?
- 29. 如何獲得一個並不總是存在的捕獲組?
- 30. 如何確定NSArray中每個NSDictionary對象中的對象數
你嘗試過這麼遠嗎?這是一個非常基本的任務,一個簡單的for循環應該做的。 – luk2302
這不僅僅是一個向量乘法? – Abizern
@ luk2302我試過 'NSArray * a = @ [@(1),@(2)]; NSArray * b = @ [@(3),@(4)]; NSArray * c = [arrayByAddingObjectsFromArray:b]; NSNumber * ssum = [c valueForKeyPath:@「@ sum.self」]; NSLog(@「sum%@」,ssum); ' – floyddd