请问二分法的通俗解释是什么?最好再举几个简单的列子,还有二分法和初一下半学期学的知识有联系吗?
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
1个回答
展开全部
二分法多数用于开方。
通俗点就是,先找到一个大概的区间,把这个区间分成两半,即3个点,原始两个区间点,和中值一个点。
如果中值的平方大于要求的数,则中值为新的区间的右端点,原始的左端点还是左端点!
关系就是 这个算法是初中就学过的!
看下程序 你就明白了!运行一下,每次都有一个输出。你可以看看。
运行环境C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
double? limmin = null;
double? limmax = null;
int num=0;
Console.WriteLine("输入要求开方的数字");
string snum = Console.ReadLine();
try { num =Convert.ToInt32( snum); }
catch { Console.Write("请输入数字"); }
for (int i = 0; i <= num; i++)
{
if (i * i > num)
{
limmin = i - 1;
limmax = i;
break;
}
}
for (int i = 0; i <= 100; i++)
{
if ((((limmin + limmax) / 2) * ((limmin + limmax) / 2)) > num)
{
limmax = (limmin + limmax) / 2;
}
else { limmin = (limmin + limmax) / 2; }
Console.WriteLine("答案位于{0}-{1}",limmin,limmax);
}
Console.ReadLine();
}
}
}
通俗点就是,先找到一个大概的区间,把这个区间分成两半,即3个点,原始两个区间点,和中值一个点。
如果中值的平方大于要求的数,则中值为新的区间的右端点,原始的左端点还是左端点!
关系就是 这个算法是初中就学过的!
看下程序 你就明白了!运行一下,每次都有一个输出。你可以看看。
运行环境C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
double? limmin = null;
double? limmax = null;
int num=0;
Console.WriteLine("输入要求开方的数字");
string snum = Console.ReadLine();
try { num =Convert.ToInt32( snum); }
catch { Console.Write("请输入数字"); }
for (int i = 0; i <= num; i++)
{
if (i * i > num)
{
limmin = i - 1;
limmax = i;
break;
}
}
for (int i = 0; i <= 100; i++)
{
if ((((limmin + limmax) / 2) * ((limmin + limmax) / 2)) > num)
{
limmax = (limmin + limmax) / 2;
}
else { limmin = (limmin + limmax) / 2; }
Console.WriteLine("答案位于{0}-{1}",limmin,limmax);
}
Console.ReadLine();
}
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询