奇趣编程|30岁以上零基础还能学会编程吗?

最近有学员问奇趣编程,30岁以上零基础还能学会编程吗?今天奇趣编程腾讯qq在线就和大家一起分享下对这个问题的看法。

首先要明确你为什么学。

有的人想学编程是在本行业做不下去,听别人说程序员工资高,想学编程去大公司应聘做程序员。这种情况可能就有点不合适,因为公司招聘的软件开发岗位肯定是要招计算机专业出来的,如果是自学出来的,很受嫌。

有的人想学编程是工作需要,比如说做股票、金融、网店运营、学术研究等,这种情况不是工作刚需,但学会编程能提高工作效率,是锦上添花。这种情况就适合学编程,在工作中学习编程,只需要学习工作中需要用到的知识点就行,用学习编程来提高工作能力,学习量不大,还见效快,实用性强。

有的人是出于兴趣,就是纯粹的喜欢作为一个创造者的快乐,看到创作作品出来时的成就感。比如说,他喜欢做一些小工具,免费分享给别人,当有人使用了,他就感觉到很有成就感。学编程,确实是会让有人产生一种造物者的感觉,因为编写出来的程序,是有交互性的、自动化的,有点智能,让人的成就感是比较强的。这种情况也适合学编程。

有的人是出于某种目的,比如想研究某个问题的规律,或是想用于自动化,或是想替代人工操作。只要目的是明确的,那解决问题的路径基本上也是明确的,所以只需要围绕着解决问题来学习所需要的知识点就行。这种情况也适合学编程。

可见,除了去求职,其它的情况都和年龄无关,也和是否计算机专来出身无关,有关的是你的学习目的。

其次是你的学习编程的态度和过程。

学习编程的态度,最重要的是要坐得住、学得进,不要急躁。有些人遇到一丁点问题就暴躁不安,但世界上有什么事情是一帆风顺的呢?没有任何一件事情是没有波折的,高速路还有上坡下坡拐弯呢。要接受这种学习的曲线,正确面对所遇到的挫折,放平心态。

学习编程要以点带面,当学习到赠个知识点时,若有精力应围绕这个知识点学习相关的知识。如果不知道学什么,就应该找一个在这方面最专业的人来带,即使是收费的也比自己瞎摸索浪费大量时间要强,比如说奇趣编程就是围绕研究随机数规律来展开统计学、概率论、大数据、人工智能相关知识的。

学习编程要有持续性,写程序不要隔太久时间,不然可能会产生一种陌生感,遗忘很多东西,回不到写程序的状态。学习编程最好是和工作或生活结合,当所学的编程对生活产生了正反馈,比如帮助收入增长了啥的,就有动力持续学习了。

奇趣编程|石头剪刀布游戏人工智能AI的设计思路

在本文中,奇趣编程用石头剪刀布游戏来阐述人工智能AI的设计思路,腾讯qq在线欢迎大家交流探讨。

石头剪刀布游戏游戏中,我们要解决的问题是,当对方上一次出某一个动作时,我方本次应出什么动作获胜的概率比较大?比如说,对方上次出石头,我方本次出石头、剪刀、布三者的胜率各是多少?知道了这三个的胜率,我们就可以决定出胜率最大的那个。

可以按下面的步骤设计训练以根据历史数据统计获胜概率。

第一步,随机游戏100万次,并将每次双方出的动作和对战结果记录到数据库。

第二步,分别统计出对方出了石头、剪刀、布之后下一次出的是哪一个,得到对方出了某个动作之后再出某个动作的概率。比如对方出了石头之后,有40%的可能出剪刀,有36%的可能出布,有24%的可能继续出石头。

第三步,知道了对方出了某个动作之后会出哪个动作的概率,就可以针对这个可能的动作来出手了。比如说,对方出了石头之后,有40%的可能出剪刀,那我方可以出石头,就有60%的获胜概率。

这个人工智能AI,本质上是用模拟的训练来生产数据,然后从历史数据中统计出某种连续模式出现的概率,然后以此作为未来对战时的决策依据。奇趣编程的这个人工智能设计思路中并没有使用到复杂的算法,仅仅是利用中心极限定理,用历史大数据的概率来预测未来大数据的概率,训练量用的是100万次,未来对战的次数也是100万次,可能会获得比较好的战果,这个只是构想,还没有写代码进行验证。

奇趣编程|如何使用深度学习进行时间序列分类?

深度学习在很多方面都有着广泛的应用场景,比如人脸识别、图像分类、物体识别、语音识别、文本分类、推荐系统等,今天奇趣编程腾讯qq在线和大家分享一下深度学习在时间序列分类上的应用。

大体上看,用深度学习来进行时间序列分类的过程分为三个步骤:输入时间序列-使用某个深度学习算法进行训练-输出分类概率。这里的深度学习算法有两种,一种是生成式(Generative),一种是判别式(Discriminative)。

时间序列的分类算法思路有以下几种:

1、基于距离的思路。

2、基于特征的思路。

3、基于神经网络的思路。

时间序列降维可视化方法有以下两种:

1、分段聚合,使用局部平均等方法进行降维。

2、核变换,使用BG核或均值核来进行降维。

就目前来看,深度学习在时间序列分类上的应用是一个比较新的领域,很多思路和方法需要大量的各行各业的专业人士去研究。

奇趣编程|什么是时间序列分析?

时间序列是指半某种现象的某一个统计指标在不同的时间上的各个数值按时间先后顺序排列而形成的序列,主要由时间和指标数值两者构成。

时间序列分析
时间序列分析

时间序列的特点是:

1.是基于现实的数据,而不是由模拟实验产生的数据。

2.是基于时间动态变化的数据。

奇趣编程腾讯qq在线和大家分享一下什么是时间序列分析。

时间序列分析的英文是“Time-Series Analysis”,时间序列分析是对时间序列的分析,是对动态数据处理的统计方法,基于随机过程理论和统计学方法,研究随机数据序列的规律,通过建立模型进行过滤、预测、控制。

常见的时间序列分析有天气预报、股票、销量预测等。时间序列通常会有显而易见的周期性特征,比如天气预报,会有季节性,这是由地球公转和地理原因造成的;股票,会有季报性,每逢年报即将发布的月份为了数据好看通常会涨一波;销量,各行各业都有淡季旺季节假日之分。所以时间序列分析的模型通常需要有季节性项、节假日项、噪音项、趋势项,也就是时间序列上的数据周期性通常是由这几个大的因素造成的,找出重要时间点,从而实现预测。

时间序列分析,可以用于短期、中期、长期的预测,又分为简单序时平均数法和加权序时平均数法。简单平均数法,就是把近期和远期的数据等同看待求平均值,适用于周期性数据变化不大的的情况,比如天气预测。加权平均数法,就是把历史各个时期按影响程序来加上权重再求出平均值,以作为近期的预测,比如宏观经济预测、环境污染。

时间序列分析在宏观经济预测、区域发展、经营管理、气象预报、水文预报、地震预报、农业灾害预报、环境污染、海洋学、天文学、生态学等各个方面都有广泛应用,值得学习和深入研究。

奇趣编程|大案牍术——古代的大数据统计学

某部国产剧里虚构的“大案牍术”,相当于今天的大数据、统计学、概率论、人工智能、统计与决策,它是通过对数据的收集、整理、分析,预测事情的起因、发展和趋势。

“大案牍术”是虚构的,但唐代的数据统计技术却是真实的。今天奇趣编程腾讯qq在线和大家说说古代的统计。在唐代的《国计簿》里有这样的记载:

史官李吉甫撰《元和国计簿》,总计天下方镇凡四十八,管州府二百九十五,县一千四百五十三,户二百四十四万二百五十四…… 吉甫都纂其事,成书十卷。

《旧唐书·本纪十四》

可见这些官方文献已经有了基础的大数据功能,是官方有组织地收集、整理、分析出来的数据,统计了地域、人口、经济、产量等国家整体的情况。

国家统计这些有什么用?

一是战争。战争就是国家人力、物力、财力、生产能力、技术的大比拼,一场战争有多少胜算,是开战前就能通过对战争各项影响因素统计就能分析出来的。

二是税收。有多少人口,产量如何,能收上多少税,要不要加税减税,这些都要有统计数据作为决策依据。

三是政策的调整。人口有越来越少的趋势,就要鼓励生育;生产能力低力,就是出激励政策;技术发展停滞,就要培育人才。

还有其它很多方面都需要统计来辅助决策,欢迎大家补充。

奇趣编程|利用随机数大数定律和小数定律的偏态打法

什么是大数定律?

大数定律就是在随机事件的大量重复出现中必然出现的规律。简单点说就是随机数大数据里呈现出来的规律。

什么是小数定律?

小数定律是人类往往把大数据呈现出来的规律套用到小样本中的不理性行为。简单点说就是随机数大数据里才有的规律在少量的随机数里是体现不出来的。

比如说,抛1万次硬币,它的正反面出现次数接近50%,这是大数定律,数据量足够大才有的规律。接下来还抛10次,如果前面五次抛出来的都是正面,就断定后面的五次都是反面,肯定是错误的,这就是小数定律,数据量不够,所以是小数定律,只抛10次并不能体现出抛1万次的规律。

那怎么解决这个问题呢?奇趣编程腾讯qq在线和大家分享一下。

前面抛一万次出现的规律,后面还要用相同的次数才能体现出来。也就是说,前面抛1万次出现的规律是正反面出现的次数是各50%,那后面不能只抛10次,而要继续抛1万次,才能用上“正反面出现的次数是各50%”这个规律,否则就会陷入小数定律的陷阱。

现在你知道那些打短线、中线、加仓减仓的人是怎么亏损的了。

要想稳定,就只有打长线、仓位固定。

奇趣编程|随机漫步的随机数曲线怎么预测趋势?

如果把随机数以曲线的形式表现出来,那未来即将发生的随机数是呈现随机漫步的特点的,就像一个醉汉,他的下一步是随机的。那么有什么办法可以预测趋势呢?今天奇趣编程腾讯qq在线和大家一起分享。

随机数曲线的下一个随机数,是随机漫步的,所以只针对未来的一个随机数,是无法准确预测的,但是从随机数曲线整体上来看,它是呈现出一定的规律性的。

在股票中,股票的价格曲线虽然是随机漫步的,但它本质上是多空双方的资金博弈,股票价格会走向阻力小的一方,股票的曲线,就是最小阻力路线,所以股票中有阻力位和支撑位的概念。

但股票的价格并不是纯由随机数驱动的数据,它有很多现实因素决定着它的价格趋势。比如说,公司的所处行业环境、国际环境、产能、盈利水平、技术更新、人事调动、新闻事件等,都会对股票的价格曲线造成影响。

我们奇趣编程只研究单纯的只有随机数这一个因素影响的曲线,所以对这种随机数曲线趋势的预测,不需要像股票那样考虑太多太复杂的东西,只考虑纯数学意义上的东西就行,用统计学、概率论等就能为我们提供很多预测趋势的方法。

奇趣编程|腾讯qq在线|怎么用中心极限定理寻找随机数规律?

随机数有规律吗?怎么发现规律?怎么能直观地看到随机数的规律?随机数的规律是什么?今天奇趣编程腾讯qq在线和大家分享。

对于随机数的规律,在统计学概率论上有一个“中心极限定理”,它是指在适当的条件下,大量相互独立随机变量的均值经过适当标准化后呈现正态分布。

举一个例子。

假设有100个随机数,随机数的取值范围是0-100之间,那么平均值是50。然后对这100个随机数进行抽样统计,将每次抽样的平均值和总体平均值进行对比。假如说抽样1000次,每次从这100个随机数里随机抽出固定的N个随机数来计算出本次抽样的平均值,把所有的抽样平均值都记录下来,形成图表,我们可以发现抽样均值的分布形成了一条钟形曲线,呈现正态分布的特点,抽样的均值接近总体的均值。

在统计学概率论所有的定理中,中心极限定理是最重要的定理之一。真正理解这个定理,就能把它应用到股票、博弈、概率、决策树、人工智能等项目中。

我们可以利用这个规律来作什么呢?利用有限的已知的随机数来推断出整体的平均值。比如说,我只有1万个随机数,我怎么推断出整体的100个随机数的平均值呢?

在1万个随机数里进行多次抽样,把每次的抽样平均值都记录下来,形成的钟形曲线如果呈正态分布,那抽样的平均值就是整体的平均值。

奇趣编程|胜率是怎么计算出来的?

有很多朋友问奇趣编程关于胜率的问题,很多时候他们分不清概念,我在这里作一个统一的回答腾讯qq在线,欢迎加我交流探讨。

胜率有两种,一种是针对过去而言的。比如过去A和B下棋1000盘,A赢了600盘,B赢了400盘,则A过去的胜率是60%,B过去的胜率是40%。

一种是针对未来的。

已经A过去的胜率是60%,B过去的胜率是40%,那AB再下一盘,A的胜率是多少?B的胜率是多少?

我们可以想到,A的下棋水平应该是稳定的,不会突然智商下线,所以A未来的一盘对战胜率仍然会有60%。

已经A过去的胜率是60%,B过去的胜率是40%,那AB再下1000盘,A的胜率是多少?B的胜率是多少?我们认为A在未来的1000盘里胜率仍然是60%,也就是会赢600盘左右,因为A的水平是稳定的。

假如A的水平是不稳定的,或是B作弊,或者是有其它人在决定输赢结果,那胜率就无法计算。

任何一个问题的结果,都是由大量影响结果的因素来决定的,只要影响结果的因素没变,结果的胜率就不会变。

奇趣编程|随机数也有统计规律性?怎么样才能看到?

一般认为,少量的、个别的随机数是没有规律性的,但是大量的随机数里有没有统计规律性呢?今天奇趣编程腾讯qq在线和大家分享下。

任何事物,既有其偶然的一面,也有其必然的一面,大量的偶然就存在着必然。大量的随机数,通过试验、观察、统计、分析,我们发现它有频率的稳定性,即某一个随机数发生的频率经常在某个固定的值附近出现,并且观察的数据量越大,规律越明显,这种规律我们将它叫做统计规律性。

统计规律性具有以下几个特点:

1、随机数的数据量要大。

2、数据量越大,规律性越明显。

3、存在涨落现象。

我们可以用生活中抛硬币的例子来说明。

如果我们一个硬币抛十次,是找不到规律的。如果我们拿十个硬币抛一次,也是找不到规律的。

假如我们拿一个硬币抛一万次,规律就出来了,我们会发现硬币的正面和反面出现的次数是比较接近的。假如我们拿一万个硬币来抛一次,也是正面和反面出现的次数比较接近。数据量越大,每个面出现的次数越是接近平均数。这就说明它存在统计规律性。

统计规律性

我们还可以用伽耳顿板来做实验证明大量随机数的统计规律性。咖耳顿板是在一块竖木板上规则地钉上很多铁钉,木板下部用竖直隔板隔成许多等宽的槽板,用玻璃作面板以便观察。当把大量小球从顶的顶部落下时,小球与钉子多次碰撞落到底部的槽位里。

当放入少量的小球时,各个槽位里的小球数量是没有规律的。当放入大量的小球时,各个槽位里的小球数量就出现明显的规律了:

伽耳顿板
伽耳顿板

我们可以看到,底部的小球是呈钟形正态分布的。反复做这个实验,可以观察到虽然各槽位的小球数量有轻微变化,但整体上的分布情况仍然符合正态分布。也就是说,对于任意一个小球或少量的小球是随机的偶然事件,但对于大量小球来说,是一个必然事件,这就是统计学概率论中的统计规律性。