Mathematica 新版10.3.0试水

Mathematica_Banner
Standard

博客好久没写东西了也该来拔拔草了。今天想在机房新机器上装个Mathematica,于是看到了最新版已经到10.3.0了(我之前用的只是10.0.1而已),就心血来潮下了一个玩玩。打开界面时并没有感觉到什么神奇之处,然而在输入的瞬间被吓尿了,它大概是长这个样子的:

KeywordChineseHint

新版(10.2.0 起)增加了语法关键词的中文解释

妈妈再也不用担心我看不懂英文了!看完中文名称,基本上对这个函数就有个大概的了解了。

然而更加精彩的还在后面,当我输完一行代码的时候,它就变成了这样:

ExprChineseHint

关键词自动注解

咦?关键词下面竟然还有代码说明,好神奇啊!这样子一来,根本不需要向别人解释这段代码什么意思了,能看得懂中文的应该都能懂了。简直是文科妹子要学编程的福音啊 (✿◕‿◕✿)

然而转念一想,这件事好像并不那么的单纯。在编程界,有一条广为人知的“定律”:1. 每个写代码的都希望别人的代码有注释,2. 然而他自己写代码的时候又不想写注释。此定律在江湖传播甚九,数十年未有人破。而今日Mma发现此中玄机,搞出这样一个自动代码注解,若放任其行,编程界势必大乱啊!

调侃完了,说些正经事。这东西有多大帮助我并不好说,但可以确定的是,对初学者的帮助是巨大的。Mma的文档系统本身就设计的比较亲民,学习曲线比较平缓,但依旧有好多人不知道要点F1(啧啧)。这次直接将解释放到了UI界面上,可见其对待新用户的认真程度了。

(不过这个东西可以干嘛用呢,或许可以用来写诗?开个脑洞下次来玩玩。)

回到原先的主题,下面便来简单介绍一下这次更新的内容以及个人的comment。


如果你是南大、东大学生,可以在紫荆的这个页面下载。边下边看,效率更高哦!

Continue reading

用MongoDB建立炉石传说卡牌数据库

The_Grand_Tournament_Banner
Standard

MongoDB 简介

MongoDB 是一个面向文档的数据库管理系统。与传统的SQL Server、MySQL等关系型数据库(Relational Database Management System)有所不同,它是非关系型的数据库,即 NoSQL。

NoSQL 的设计思维与传统的数据库设计还是有一点差别的。在传统的数据库设计思维中,在设计阶段就需要对表的字段名称、字段类型进行规定(DDL),如果插入的数据不符合要求,则数据库不会接受这条数据以保持完整性。

INSERT INTO TABLE members VALUES('小明', 'Hello MongoDB!')
INERT INTO TABLE members VALUES('John', 20, 'john@example.com')

-- 在关系型数据库中,上述两条插入语句不可能同时成功

而在 MongoDB 中,以文档表示每条记录,而集合则是一组文档。如果说 MongoDB 中的文档类似于关系型数据库中的行,那么集合就如同于表。

{"name": "小明", "greeting": "Hello MongoDB!"}
{"name": "John", "age": 20, "email": "john@example.com"}

集合是无模式的,意味着一个集合里面的文档可以是各式各样的。MongoDB 中的文档格式类似于JSON,每个文档包含着一些键值对。注意到,不仅是值的类型不同(字符串和整数),它们的键也是完全不一样的。在集合里面可以放置任何文档会带来很多好处,例如某些种类很多的字段就不必专门建表去存储了,减少了设计表时的成本。但随之而来的问题是:“还有必要使用多个集合吗?”问得好!为何要用多个集合呢?下面是一些理由:

Continue reading

MATHEMATICA例程2——小数循环节

Standard

 

Hello大家好,这里是Mathematica例程大讲堂。

之前发现从关键词 Mathematica 过来的搜索流量偏高,于是便跑过来填这个许久之前挖的坑。上一篇文章是讲关于如何用 Mathematica 生成 Look And Say 序列,反复看了之后觉得难度太高,不适合初学,于是这次便来讲一点简单的、比较基本的例子。


一、主要目标

这次要计算的是 1/n 的小数部分的最小循环节长度,其中 n 最好是质数,例如:

1 / 3  = 0.333...
1 / 7  = 0.142857142857...
1 / 19 = 0.0526315789473684210526...

1/7 的循环节是"142857",有6位,而 1/19 的循环节是"052631578947368421",有18位,以此类推。

如果你觉得从中找到了规律,不妨来猜一下 1/81,1/9801 的循环节长度是多少位呢?^_^


Continue reading

脑洞大开之 HoloLens + MineCraft (๑.๑)

HoloLens_MineCraft_Banner
Standard

Microsoft HoloLens 宣传片:

前几天看到微软的Hololens宣传片,不看不知道一看吓一跳啊。这是黑科技我当然知道了,虚拟现实也不是什么新的技术,眼镜也不是新的名词。但是里面出现了MineCraft啊!其他什么办公、原型设计、远程协作啥的我都不关心,能愉快地玩耍就行。这个宣传片中一共出现了两次MC的展示,虽然看起来嵌入地有点生硬,但想法还是很好的。

早在之前微软“收购”MC的时候,我就在猜微软在下怎么样的一盘棋,没太想明白。现在看了视频,如果微软想借此用Hololens打开“虚拟现实游戏”的市场的话,也未尝不可。况且MC是有这么庞大的社群用户呢,有人响应那是自然的。嘎嘎。

我在想的,是微软还能在上面玩出什么新的花样。开开脑洞玩 (๑.๑)

Continue reading

随便谈谈Android的逆向工程

Android_Robots_Banner
Standard

假期里闲来无事,就开始倒腾。

所谓(软件的)逆向工程,听起来很貌似高端,它实际上就是根据软件运行后的表现进行逆向分析和研究,从而推理出该软件的处理逻辑、功能结构等要素,以制作出功能相近,但又不完全一样的产品。它的目的、也是难点在于,在不能轻易获得源代码的情况下下,直接从对软件的分析,推导出它的设计原理。

为了让逆向工程的结果看起来有点用,我选了《么么答》这款应用作为“实验对象”。

《么么答》是人人网旗下的一款社交教育类问答游戏,拥有海量题库。可以与好友对战答题或是进入天梯PK。

我猜应该有很多人玩得比我还熟,就不多作介绍了。


初体验

逆向工程的第一步是要“使用”这款软件,熟悉它的流程。把所有能点的按钮啊、菜单啊都点一遍,知道它有哪些功能。当然,重点就是测试答题的过程了。稍试几次,便容易发现一个清晰的答题的流程:

  1. 选择分类
  2. 读取题目
  3. 互相答题
  4. 最终结果

对一般用户来说,所能体验到的东西也就这些了。但对于逆向工程来说,还远远不够,要从这个看似简单的流程中读到更多信息。


Continue reading

【欧拉计划】一个组合问题

Balls_Banner
Standard

前几天又开始刷欧拉计划,遇到一道很有意思的题,把它化简之后,核心在于解这样一个组合问题:

一个袋子里有4个红球、2个蓝球,按顺序从中取出不多于2个球,问有多少种结果?(计取出顺序,且认为同色球都相同)

全部列出来就知道共有6种组合,分别是r, b, rr, rb, br, bb。

推广到一般情形,即:

有 $m$ 种不同的元素,分别有 $n_1, n_2, \ldots , n_m$ 个,其中 $n=n_1+n_2+\ldots+n_m$ 。现在要从中取出不多于 $L$ 个,问有多少种可能的取法?

对于 $m=2, n_1=4, n_2=2, L=2$ 的情形,结果是6。

那对于一般的情形,又该如何计算这个值呢?

下面我将给出两种解答这个问题的思路:第一种是我当时解答这个问题的思路,第二种则是在论坛里看到的高人的解答。

Continue reading

欢迎进入七彩的世界——Wanderland Adventure!

Wonderland_Adventure_Banner
Standard

好吧,标题中二病发作了。事件的起因时间是这样的:

今天逛知乎的游戏版,看到有人问有没有一些设计精良的解谜游戏。看着看着突然想到了DROD和Wonderland Adventure系列,想起WA系列还有一个续作没有出,于是上官网查了一下,果然出了,等了三年的游戏啊!还好官方没有食言。

Continue reading