안녕하세요, 프로그래밍 커뮤니티 '코드앤톡스' 완장으로 활동중인 바보털입니다.
얼마 전에 이곳을 알게 되어서 눈팅도 좀 하고 글도 몇 번 써보았는데, 프갤분들과는 다르게 다들 프로그래밍에 대한 조예도 깊고 관심도 많으신것 같아 존경스럽습니다. 특히 Rust에 대한 애정이 넘치시는 것 같은데, 맞나요? ㅎㅎ
다름이 아니고, 저도 얼마 전에 Rust를 공부하기 시작했는데, 이게 참 남들한테 영업을 하고 싶어지는 묘한 언어입니다. 그래서 저도 코드앤톡스 회원분들께 영업을 하고 있는데, 아직 실력이 미숙해서 쉽지 않네요. 그래서, Github갤 분들께서 코드앤톡스에 오셔서 Rust 영업을 좀 도와주셨으면... 하고 이 글을 쓰게 되었습니다.
물론 Rust가 아니라도 프로그래밍에 관련된 이야기를 나누고 싶으신 분, 코드 리뷰를 받고 싶으신 분, 코드 자랑을 하고 싶으신 분, 프로그래밍 과제를 날먹하시려는 분 모두 환영합니다.
이거 글을 어떻게 끝내야 할지 잘 모르겠네요. 코드앤톡스 링크와 오늘 공부한 러스트 코드 놓고 가겠습니다. 혹시 광고라 문제가 된다면 지우겠습니다. 감사합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | type Real = f64; type Matrix< T > = Vec< Vec< T > >; struct Nya { size: usize, count: usize, e1: Vec< Real >, e2: Matrix< Real > } impl Nya { pub fn new(size: usize) -> Self { Nya { size, count: 0, e1: vec![0.0; size], e2: vec![vec![0.0; size]; size] } } fn put(&mut self, val: &[Real]) -> &mut Self { for i in 0..self.size { self.e1[ i ] += val[ i ]; for j in 0..self.size { self.e2[ i ][ j ] += val[ i ] * val[ j ]; } } self.count += 1; self } fn mean(&self, val: usize) -> Real { self.e1[ val ] / self.count as Real } fn cov(&self, v1: usize, v2: usize) -> Real { (self.e2[ v1 ][ v2 ] - self.e1[ v1 ] * self.e1[ v2 ] / self.count as Real) / self.count as Real } fn cov_matrix(&self) -> Matrix< Real > { let mut ret = vec![vec![0.0; self.size]; self.size]; for i in 0..self.size { for j in 0..self.size { ret[ i ][ j ] = self.cov(i, j); } } ret } fn cor(&self, v1: usize, v2: usize) -> Real { self.cov(v1, v2) / (self.var(v1) * self.var(v2)).sqrt() } fn var(&self, val: usize) -> Real { self.cov(val, val) } fn std(&self, val: usize) -> Real { self.var(val).sqrt() } } fn main() { let mut nya = Nya::new(2); nya.put(&[- 6.0, - 7.0]) .put(&[ 8.0, - 5.0]) .put(&[- 4.0, 7.0]) .put(&[ 10.0, 9.0]); println!("E(X1) = {}", nya.mean(0)); println!("V(X1) = {}", nya.var(0)); println!("E(X2) = {}", nya.mean(1)); println!("V(X2) = {}", nya.var(1)); println!("COV(X1, X2) = {}", nya.cov(0, 1)); println!("COR(X1, X2) = {}", nya.cor(0, 1)); for i in 0..nya.size { for j in 0..nya.size { print!("{} ", nya.cov_matrix()[ i ][ j ]); } print!("\n"); } } | cs |
https://www.codentalks.com/
영업하면 러스트하고 싶어지니까 영업하지 마세요
serde 한번 써보시면 영업에 도움이 되실겁니다
감사합니다 참고하겠습니다
진짜 갤 망했네
어휴 진짜 Rust 망했다니까 - return 0;