趣味算法一棋盘的麦子

简介: 趣味算法一棋盘的麦子

1.《趣味算法》原文章节内容_一棋盘的麦子

👍原文章节:

如果说数学是皇冠上的一颗明珠,那么算法就是这颗明珠上的光芒,算法让这颗明珠更加熠熠生辉,为科技

进步和社会发展照亮了前进的路。数学是美学,算法是艺术。 走进算法的人,才能体会它的无穷魅力。

多年来,我有一个梦想,希望每-位提到算法的人,不再立即紧皱眉头,脑海里闪现枯燥的公式、冗长的代

码;我希望每一位阅读和使用算法的人,体会到算法之美,就像躺在法国普罗旺斯小镇的长椅上,呷一口红

酒,闭上眼睛,体会舌尖上的美味,感受鼻腔中满溢的薰衣草的芳香…

🤎以上这一段内容很棒

很多人提到算法会感觉很深奥,算法本身就具有一定的复杂性。也许算法这个名词听上去很抽象,让人联想不到任何具体的物体。也许你会觉得算法与自己的生活并无太多关系,它只不过存在于那些闲得无聊的数学家或计算机专业人士的脑海中.,但这本《趣味算法》很有趣书哈中所有的示例都与生活息息相关,淋漓尽致地展现了算法解决问题的本质,让你爱上算法,乐在其中。

👍原文例子:

有一个古老的传说,一位国王的女儿不幸落水,水中有很多鳄鱼, 国王情急之下下令:“谁能把公主救上
来,就把女儿嫁给他。"很多 人纷纷退让,一个勇敢的小伙子挺身而出,冒着生命危险把公主救了上来,国王
一看是个穷小子,想要反悔,说:“除了女儿,你要什么都可以。”小伙子说:“好吧,我只要一棋盘的麦子。
您在第1个格子里放1粒麦子,在第2个格子里放2粒,在第3个格子里放4粒,在第4个格子里放8粒,以此类
推,每一个格子里麦子的粒数都是前一格子里麦子粒数的两倍。把这64个格子放满了就行,我就要这么多。
国王听后哈哈大笑,觉得小伙子的要求很容易满足,满口答应。结果发现,把全国的麦子都拿来,也填不完
这64个格.....国王无奈,只好把女儿嫁给了这个小伙子。

原文解析:

棋盘上的64个格子究竟需要放多少粒麦子?

注意:宕机就是死机,指计算机无法正常工作,包括一切原因导致的死机。计算机主机出现意外故障而死机,-些服务器(如数据库服务器)死锁,服务器的某些服务停止运行等,都可以称为宕机。

常见的算法时间复杂度有以下几类。

(1)常数阶。

常数阶算法的运行次数是一个常数 ,如5、20、 100。 常数阶算法的时间复杂度通常用0(1)表示。

(2)多项式阶。

很多算法的时间复杂度是多项式,通常用O(n)、O(n2 ^22)、 O(n3 ^33)等表示。

(3)指数阶。

指数阶算法的运行效率极差, 程序员往往像躲“恶魔”一样避开这种算法。指数阶算法的时间复杂度通常

用0(2n ^nn)、O(n!)、 O(nn ^nn)等表示。

(4 )对数阶。

对数阶算法的运行效率较高,通常用O(logn)、O(nlogn)等表示。

指数阶增量随着x的增加而急剧增加,而对数阶增长缓慢。它们之间的关系如下:

0(1)< O(logn)< O(n)< O(nlogn) < O(n2 ^22)< O(n3 ^33)< 0(2n ^nn) < O(n!)< O(nn ^nn)

在设计算法时,我们要注意算法复杂度增量的问题,尽量避免爆炸级增量。

2.什么是算法

算法就是计算的办法或法则。这里的计算指的当然不只是加、减、乘、除等算术运算,而是广义的做任何事情的计算,而办法和法则意味着使用它就可以解决需要的问题。

由上面提到的定义可推知,算法作为解决问题的方法,它必须具备以下特点:

●确定性,即无歧义,能让人照着执行。

●可行性,算法中的运算都是基本的,理论上能够由人用纸和笔完成。

●有限性,在有限输入下,算法必须能在有限步骤内实现有限输出。

此外,算法必须有输出、计算的结果,通常还有至少-一个输入量。这是因为算法用以解

决的问题的描述均包括输入和输出。例如,排序问题可以描述如下:

此外,算法必须有输出、计算的结果,通常还有至少-一个输入量。这是因为算法用以解

决的问题的描述均包括输入和输出。例如,排序问题可以描述如下:

输入:

数列: a1,a2,…an

输出:

排列: a’1,a’2,…a’n, 其中 a’1≤a’2≤…≤a’n

举例:

输入序列:824936

输出序列:234689

3.算法的表示

由于算法由一系列步骤组成,那么任何一个步骤序列从广义上看,都可以当做是一个算法。例如,下面的步骤就可以看做是一个算法:

1)起床

2)吃早点

3)上早自习

4)上课

5)吃午饭

6)上课

7)吃晚饭

8)上晚自习

9)睡觉

这是用自然语言表示的一个学生每天运行的通用算法。下面是一个将末端递归转换为循

环的算法,除了自然语言,我们也可用计算机语言(即程序设计语言)来表示算法。实际上,由于

计算机程序给出的是-一个-一个步骤的执行序列,因此计算机程序都是算法,或者说都是算法

的-种表示。例如,下面的计算机程序片段就表示的是一个计算阶乘的算法:

int factorial (int n)
{
if(n==0) return 1;
else return n* factorial(n-1) ;
}
相关文章
|
算法
算法学习之路|棋盘问题(博弈)
小明和小红在玩一种棋盘游戏,棋盘的尺寸为n个方格*m个方格。一开始在棋盘的右上角(1,m)放一枚硬币,每次一个人可以将硬币向左、下或左下的方格移动。
2163 0
|
算法 Java
【算法篇】/*一篇博客带你详细了解马踏棋盘问题*/(java语言实现)
【算法篇】/*一篇博客带你详细了解马踏棋盘问题*/(java语言实现)
163 0
【算法篇】/*一篇博客带你详细了解马踏棋盘问题*/(java语言实现)
|
存储 算法
算法题每日一练---第2天:棋盘放麦子
你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第 1 个棋盘格放 1 粒麦子,在第 2 个棋盘格放 2 粒麦子,在第 3 个棋盘格放 4 粒麦子,在第 4个棋盘格放 8 粒麦子,......后一格的数字是前一格的两倍,直到放完所有棋盘格。
274 0
算法题每日一练---第2天:棋盘放麦子
|
4天前
|
算法 数据安全/隐私保护 计算机视觉
基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
本项目展示了256×256图像通过双线性插值放大至512×512的效果,无水印展示。使用Matlab 2022a和Vivado 2019.2开发,提供完整代码及详细中文注释、操作视频。核心程序实现图像缩放,并在Matlab中验证效果。双线性插值算法通过FPGA高效实现图像缩放,确保质量。
|
1月前
|
算法 数据安全/隐私保护 计算机视觉
基于Retinex算法的图像去雾matlab仿真
本项目展示了基于Retinex算法的图像去雾技术。完整程序运行效果无水印,使用Matlab2022a开发。核心代码包含详细中文注释和操作步骤视频。Retinex理论由Edwin Land提出,旨在分离图像的光照和反射分量,增强图像对比度、颜色和细节,尤其在雾天条件下表现优异,有效解决图像去雾问题。
|
1月前
|
算法 数据可视化 安全
基于DWA优化算法的机器人路径规划matlab仿真
本项目基于DWA优化算法实现机器人路径规划的MATLAB仿真,适用于动态环境下的自主导航。使用MATLAB2022A版本运行,展示路径规划和预测结果。核心代码通过散点图和轨迹图可视化路径点及预测路径。DWA算法通过定义速度空间、采样候选动作并评估其优劣(目标方向性、障碍物距离、速度一致性),实时调整机器人运动参数,确保安全避障并接近目标。
148 68
|
3天前
|
算法
基于SOA海鸥优化算法的三维曲面最高点搜索matlab仿真
本程序基于海鸥优化算法(SOA)进行三维曲面最高点搜索的MATLAB仿真,输出收敛曲线和搜索结果。使用MATLAB2022A版本运行,核心代码实现种群初始化、适应度计算、交叉变异等操作。SOA模拟海鸥觅食行为,通过搜索飞行、跟随飞行和掠食飞行三种策略高效探索解空间,找到全局最优解。
|
1月前
|
算法 数据安全/隐私保护
室内障碍物射线追踪算法matlab模拟仿真
### 简介 本项目展示了室内障碍物射线追踪算法在无线通信中的应用。通过Matlab 2022a实现,包含完整程序运行效果(无水印),支持增加发射点和室内墙壁设置。核心代码配有详细中文注释及操作视频。该算法基于几何光学原理,模拟信号在复杂室内环境中的传播路径与强度,涵盖场景建模、射线发射、传播及接收点场强计算等步骤,为无线网络规划提供重要依据。
|
1天前
|
传感器 算法
基于GA遗传算法的多机无源定位系统GDOP优化matlab仿真
本项目基于遗传算法(GA)优化多机无源定位系统的GDOP,使用MATLAB2022A进行仿真。通过遗传算法的选择、交叉和变异操作,迭代优化传感器配置,最小化GDOP值,提高定位精度。仿真输出包括GDOP优化结果、遗传算法收敛曲线及三维空间坐标点分布图。核心程序实现了染色体编码、适应度评估、遗传操作等关键步骤,最终展示优化后的传感器布局及其性能。

热门文章

最新文章