2015-01-27 4 views
1

어제 Nim에서 시작했습니다. 내 목표는 표현식 b [i]/a [i]의 값의 평균을 계산하는 것입니다. 수학 모듈과 내장 함수 "mean"을 사용하려고했지만 분명히 배열에서만 작동합니다. 나는 배열로 내 루프의 결과를 구문 분석 (또는 어쩌면 어떤 도움을 주시면 감사? 다른 해결책이 방법을 모른다!루프 결과가 배열

var a = @[100.0,102.0,101.0,114.0, 128.0, 130.0, 127.0] 
var b = a [1..high(a)]&a[high(a)] 


for i in low(a)..high(a): 


    echo i+1," period ", "= ", (b[i]/a[i]) 

답변

1

중요한 부분은 var c = newSeq[float]()와 새로운 시퀀스를 만들고 값을 추가하는 것입니다 첫 번째 블록과 마찬가지로 c.add(value)과 같습니다.

var a = @[100.0, 102.0, 101.0, 114.0, 128.0, 130.0, 127.0] 
var b = a[1..a.high] & a[a.high] 

import math 

block: # Iterative with math.mean 
    var c = newSeq[float]() 

    for i in a.low..a.high: 
    c.add(b[i]/a[i]) 

    echo mean(c) 

block: # Iterative without math.mean (most efficient) 
    var myMean = 0.0 

    for i in a.low..a.high: 
    myMean += b[i]/a[i] 

    myMean /= a.len.float 
    echo myMean 

import sequtils 

block: # Functionally (not really nim-like) 
    echo zip(a, b).map(proc(x): float = x.b/x.a).mean 
+1

자세한 답변을 주셔서 감사합니다. 완벽하게 작동합니다. –