Skip to content

Commit b9bbac7

Browse files
committed
Main
1 parent d889d41 commit b9bbac7

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

main.go

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
)
6+
7+
type Dataset struct {
8+
n int
9+
avgXY float64
10+
avgX float64
11+
avgY float64
12+
avgX2 float64
13+
}
14+
15+
func (d *Dataset) Add(x float64, y float64) {
16+
fmt.Print("Add: {", x, ", ", y, "}\n")
17+
18+
if d.n == 0 {
19+
d.avgXY = x * y
20+
d.avgX = x
21+
d.avgY = y
22+
d.avgX2 = x * x
23+
} else {
24+
nn := float64(d.n + 1)
25+
fac := float64(d.n) / nn
26+
d.avgXY = fac * d.avgXY + (x*y)/nn
27+
d.avgX = fac * d.avgX + (x) / nn
28+
d.avgY = fac * d.avgY + (y) / nn
29+
d.avgX2 = fac * d.avgX2 + (x*x)/nn
30+
}
31+
32+
d.n++
33+
}
34+
35+
func (d *Dataset) SlopeIntercept() (float64, float64) {
36+
m := (d.avgXY - (d.avgX * d.avgY)) /
37+
(d.avgX2 - d.avgX * d.avgX)
38+
b := d.avgY - m * d.avgX
39+
return m, b
40+
}
41+
42+
func main() {
43+
44+
// y = mx + b
45+
secretM := 2.45
46+
secretB := 19.234
47+
48+
dataset := Dataset{}
49+
for i := 1.0; i <= 10.0; i += 1.0 {
50+
dataset.Add(i, secretM * i + secretB)
51+
}
52+
53+
fmt.Println(dataset.SlopeIntercept())
54+
55+
fmt.Println("Hello, world")
56+
}

0 commit comments

Comments
 (0)