swift算法手记-5

swift算法手记-5,第1张

概述//// ViewController.swift// learn5//// Created by myhaspl on 16/1/23.// Copyright (c) 2016年 myhaspl. All rights reserved.//import Cocoaimport Foundationclass ViewController: NSViewContr
////  VIEwController.swift//  learn5////  Created by myhaspl on 16/1/23.//  copyright (c) 2016年 myhaspl. All rights reserved.//import Cocoaimport Foundationclass VIEwController: NSVIEwController {    overrIDe func vIEwDIDLoad() {        super.vIEwDIDLoad()        // Do any additional setup after loading the vIEw.    }    overrIDe var representedobject: AnyObject? {        dIDSet {        // Update the vIEw,if already loaded.        }    }	private func comresult(inputnum:Double)->Double{        //  5*x^7-3*x^5+16*x^2+7*x+90=0        let myresult:Double = 5 * pow(inputnum,7) - 3 * pow(inputnum,5) + 16 * pow(inputnum,2) + 7 * inputnum + 90        return myresult	}    @IBOutlet weak var result: NSTextFIEld!        @IBAction func compute(sender: AnyObject){//  5*x^7-3*x^5+16*x^2+7*x+90=0//  二分法求一元方程的解,最大求解范围[-100000,100000]      let trycount = 80      var accuracy: Double = 0.00000000000001      var answer: Double?=nil     // 估计解范围      var leftbound:Double?=nil	  var rightbound:Double?=nil        for var bound:Double=1;bound<10000000;bound*=10{		  let leftres=comresult(-bound)		  let rightres=comresult(bound)	      if  (leftres*rightres) < 0 {			  leftbound = (-bound)			  rightbound = bound			  break		  }	  }	  if (leftbound==nil || rightbound==nil){		  return 	  }	  //计算方程的解		  for i in 1...trycount{                result.stringValue=String(i)		        let center=leftbound!+(rightbound!-leftbound!)/2				let leftres:Double=comresult(leftbound!)		        let rightres:Double=comresult(rightbound!)				let centres:Double=comresult(center)				if centres==0 {					answer=center					break				}				else if abs(rightbound!-leftbound!) < accuracy {					answer=leftbound!					break									}				else if leftres*centres<0{					rightbound=center				}				else if rightres*centres<0{					leftbound=center				}  			}		  	  if let ans=answer{		//方程有解		 result.stringValue="解:"+String(stringInterpolationSegment: ans)+"   "         result.stringValue += "解代入方程的值:"+String(stringInterpolationSegment:comresult(ans))	  }         }}
  
    本博客所有内容是原创,如果转载请注明来源  @L_403_0@http://blog.csdn.net/myhaspl/  
总结

以上是内存溢出为你收集整理的swift算法手记-5全部内容,希望文章能够帮你解决swift算法手记-5所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1080291.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存