趣味算法一棋盘的麦子

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

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) ;
}
相关文章
|
算法 Java
【算法篇】/*一篇博客带你详细了解马踏棋盘问题*/(java语言实现)
【算法篇】/*一篇博客带你详细了解马踏棋盘问题*/(java语言实现)
147 0
【算法篇】/*一篇博客带你详细了解马踏棋盘问题*/(java语言实现)
|
算法
算法学习之路|棋盘问题(博弈)
小明和小红在玩一种棋盘游戏,棋盘的尺寸为n个方格*m个方格。一开始在棋盘的右上角(1,m)放一枚硬币,每次一个人可以将硬币向左、下或左下的方格移动。
2150 0
|
存储 算法
算法题每日一练---第2天:棋盘放麦子
你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第 1 个棋盘格放 1 粒麦子,在第 2 个棋盘格放 2 粒麦子,在第 3 个棋盘格放 4 粒麦子,在第 4个棋盘格放 8 粒麦子,......后一格的数字是前一格的两倍,直到放完所有棋盘格。
253 0
算法题每日一练---第2天:棋盘放麦子
|
28天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
5天前
|
算法 数据安全/隐私保护 索引
OFDM系统PAPR算法的MATLAB仿真,对比SLM,PTS以及CAF,对比不同傅里叶变换长度
本项目展示了在MATLAB 2022a环境下,通过选择映射(SLM)与相位截断星座图(PTS)技术有效降低OFDM系统中PAPR的算法实现。包括无水印的算法运行效果预览、核心程序及详尽的中文注释,附带操作步骤视频,适合研究与教学使用。
|
13天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
14天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
15天前
|
存储 算法 决策智能
基于免疫算法的TSP问题求解matlab仿真
旅行商问题(TSP)是一个经典的组合优化问题,目标是寻找经过每个城市恰好一次并返回起点的最短回路。本文介绍了一种基于免疫算法(IA)的解决方案,该算法模拟生物免疫系统的运作机制,通过克隆选择、变异和免疫记忆等步骤,有效解决了TSP问题。程序使用MATLAB 2022a版本运行,展示了良好的优化效果。
|
14天前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
下一篇
无影云桌面