初级会员
  • 第 10308 位会员
  • yikeso
  • 2017-07-25 05:25:11
  • Offline
  • 20 20

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 2017-07-25 06:17:51 评论了主题 求 x * 99 + y * 199 最接近 1159 的 x、y 的组合
    ax+by=c,这就是个斜线方程。xy如果是取float,根本就有无穷的解,只有当xy均为整数,且均大于0问题才成立。<br> <p> func getXY(){<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp;x := 0<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp;a := 100<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp;b := 200<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp;c := 1159<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp;m := 1.0<br /> <span></span>&nbsp; &nbsp; &nbsp; min := float64(c)<br /> <span></span>&nbsp; &nbsp; &nbsp; r := [2]int{}<br /> <span></span>&nbsp; &nbsp; &nbsp; var d,e float64<br /> <span></span>&nbsp; &nbsp; &nbsp; for m &gt;= 0 {<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;m = float64(c - a * x)/float64(b)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;d = math.Abs(float64(a*x+b*int(m)-c))<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;e = math.Abs(float64(a*x+b*int(m+1)-c))<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if d &gt; e{<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if e == 0{<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fmt.Println("最小差值:",e)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fmt.Println("xy取值:",r)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}else if e &lt; min{<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; min = e<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r[0] = x<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r[1] = int(m+1)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}else {<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if d == 0{<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;r[0] = x<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;r[1] = int(m)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fmt.Println("最小差值:",d)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fmt.Println("xy取值:",r)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}else if d &lt; min{<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; min = d<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r[0] = x<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r[1] = int(m)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x++<br /> <span></span>&nbsp; &nbsp; &nbsp; }<br /> <span></span>&nbsp; &nbsp; &nbsp; y := 0<br /> <span></span>&nbsp; &nbsp; &nbsp; for m &gt;= 0 {<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;m = float64(c - b * y)/float64(a)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;d = math.Abs(float64(b*y+a*int(m)-c))<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;e = math.Abs(float64(b*y+a*int(m+1)-c))<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if d &gt; e{<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if e == 0{<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;r[1] = y<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;r[0] = int(m+1)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fmt.Println("最小差值:",e)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fmt.Println("xy取值:",r)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }else if e &lt; min{<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;min = e<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;r[1] = y<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;r[0] = int(m+1)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }else {<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if d == 0{<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;r[1] = y<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;r[0] = int(m)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fmt.Println("最小差值:",d)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fmt.Println("xy取值:",r)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}else if d &lt; min{<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; min = d<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r[1] = y<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r[0] = int(m)<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br /> <span></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;y++<br /> <span></span>&nbsp; &nbsp; &nbsp;}<br /> <span></span>&nbsp; &nbsp; &nbsp;fmt.Println("最小差值:",m)<br /> <span></span>&nbsp; &nbsp; &nbsp;fmt.Println("xy取值:",r)<br /> } </p> <div> <br /> </div> <p> <br /> </p>