@@ -112,7 +112,7 @@ impl GeneticAlgorithm {
112112 result
113113 }
114114
115- fn learn ( ) {
115+ pub fn learn ( ) {
116116 let mut input = String :: new ( ) ;
117117 let indivisual_count;
118118 let child_count;
@@ -123,27 +123,31 @@ impl GeneticAlgorithm {
123123 println ! ( "1 Yes" ) ;
124124 println ! ( "2 No" ) ;
125125 io:: stdin ( ) . read_line ( & mut input) . unwrap ( ) ;
126- match input. as_str ( ) {
126+ match input. trim ( ) {
127127 "1" => { }
128128 "2" => { }
129129 _ => panic ! ( "不明な操作" ) ,
130130 }
131131
132- print ! ( "世代数を入力:" ) ;
132+ input = "" . to_string ( ) ;
133+ println ! ( "世代数を入力" ) ;
133134 io:: stdin ( ) . read_line ( & mut input) . unwrap ( ) ;
134- indivisual_count = input. parse :: < i32 > ( ) . unwrap ( ) ;
135+ indivisual_count = input. trim ( ) . parse :: < i32 > ( ) . unwrap ( ) ;
135136
136- print ! ( "子供数を入力:" ) ;
137+ input = "" . to_string ( ) ;
138+ println ! ( "子供数を入力" ) ;
137139 io:: stdin ( ) . read_line ( & mut input) . unwrap ( ) ;
138- child_count = input. parse :: < i32 > ( ) . unwrap ( ) ;
140+ child_count = input. trim ( ) . parse :: < i32 > ( ) . unwrap ( ) ;
139141
142+ input = "" . to_string ( ) ;
140143 println ! ( "初期化値の上限" ) ;
141144 io:: stdin ( ) . read_line ( & mut input) . unwrap ( ) ;
142- random_max = input. parse :: < f64 > ( ) . unwrap ( ) ;
145+ random_max = input. trim ( ) . parse :: < f64 > ( ) . unwrap ( ) ;
143146
147+ input = "" . to_string ( ) ;
144148 println ! ( "初期化値の下限" ) ;
145149 io:: stdin ( ) . read_line ( & mut input) . unwrap ( ) ;
146- random_min = input. parse :: < f64 > ( ) . unwrap ( ) ;
150+ random_min = input. trim ( ) . parse :: < f64 > ( ) . unwrap ( ) ;
147151
148152 println ! ( "MGGで学習を開始します\r \n 学習結果は./learn/[index].txtとして保存されます" ) ;
149153
@@ -168,7 +172,14 @@ impl GeneticAlgorithm {
168172
169173 indivisuals. sort_by ( |a, b| b. evaluation . partial_cmp ( & a. evaluation ) . unwrap ( ) ) ;
170174
171- println ! ( "最も高い評価:{}" , indivisuals. index( 0 ) . evaluation) ;
175+ println ! ( ) ;
176+
177+ for i in 0 ..indivisuals. len ( ) {
178+ print ! ( "{}番目の評価:{}\r \n 重み" , i + 1 , indivisuals[ i] . evaluation) ;
179+ for j in 0 ..indivisuals[ i] . values . len ( ) {
180+ print ! ( "{} " , indivisuals[ i] . values[ j] ) ;
181+ }
182+ }
172183
173184 let mut childs = Vec :: new ( ) ;
174185
0 commit comments