#!/usr/bin/env pyhton #coding:utf-8 #data = [(2,3),(5,6),(6,3)] def linear(lst): sumsq_x = 0 sqsum_x = 0 tmp1 = 0 ysum = 0 length = len(lst) for eachdata in lst:sumsq_x += float(eachdata[0])*eachdata[0] sumsq_x *= length for eachdata in lst: tmp1 += eachdata[0] sqsum_x = tmp1 * tmp1 denomi = sumsq_x - sqsum_x xmy = 0 for eachdata in lst:xmy += float(eachdata[0]) * eachdata[1] xmy *= length for eachdata in lst:ysum += float(eachdata[1]) anume = xmy - tmp1 * ysum a = anume / denomi b = (sumsq_x/length * ysum - tmp1 * xmy/length)/denomi return a,b data = [(2,3),(5,6),(6,3)] print linear(data)