самый быстрый способ умножить каждый элемент массива на число в Scala - PullRequest
0 голосов
/ 11 декабря 2019

У меня большой массив, и я хочу умножить каждый элемент массива на заданное число N . Я могу сделать это следующим образом

val arr  =  Array.fill(100000)(math.random)
val N    =  5.0 
val newArr  =  arr.map (  _ * N )

Так что это вернет мне новый массив, как я хочу. Другим способом может быть

def demo (arr :Array [Double]  , value : Double  ) : Array[Double] ={
var res : Array[Double] = Array()
if (  arr.length == 1  )
  res =  Array (  arr.head  + value  )
else
  res = demo  (  arr.slice(0, arr.length/2) , value   )   ++   demo  (   arr.slice  (  arr.length / 2  ,  arr.length  )  ,  value  )
res
}

В моем случае у меня есть массив большего размера, и я должен выполнить эту операцию для тысяч итераций. Я хочу спросить, есть ли более быстрый способ получить тот же результат? Будет ли хвостовая рекурсия увеличивать скорость? Или любая другая техника?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...