Rust 下 实现 kmeans 算法
关于聚类聚类算法是这样的一种算法:给定样本数据Sample,要求将样本Sample中相似的数据聚到一类。有了这个认识之后,就应该了解了聚类算法要干什么了吧。说白了,就是归类。 首先,我们需要考虑的是,如何衡量数据之间的相似程度?比如说,有一群说不同语言的人,我们一般是根据他们的方言来聚类的(当然,你也可以指定以身高来聚类)。这里,语言的相似性(或者身高)就成了我们衡量相似的量度了。在考虑存在海量数据,如微博上各种用户的关系网,如何根据用户的关注和被关注来聚类,给用户推荐他们感兴趣的用户?这就是聚类算法研究的...
Rust 下 实现 汉诺塔 (hanoi)算法
题目描述 Description有N个圆盘,依半径大小(半径都不同),自下而上套在A柱上,每次只允许移动最上面一个盘子到另外的柱子上去(除A柱外,还有B柱和C柱,开始时这两个柱子上无盘子),但绝不允许发生柱子上出现大盘子在上,小盘子在下的情况,现要求设计将A柱子上N个盘子搬移到C柱去的方法。
Rust 下 实现 扔鸡蛋问题详解(Egg Dropping Puzzle)
题目一幢 200 层的大楼,给你两个鸡蛋,如果在第 n 层扔下鸡蛋,鸡蛋不碎,那么从第 n-1 层扔鸡蛋,都不碎。这两只鸡蛋一模一样,不碎的话可以扔无数次,且鸡蛋在0层不会碎。设计一种策略能保证可以测出鸡蛋恰好会碎的楼层,且如果该策略是最坏的情况所扔次数最少。
Rust 下 实现 ciphers 算法
密码学,一种凯撒密码,也称为凯撒密码,移位密码,凯撒代码或凯撒变换,是最简单和最广为人知的加密技术之一。它是一种替换密码,其中明文中的每个字母都被字母表中的一些固定数量的位置的字母替换。例如,左移3,D将被A替换,E将变为B,依此类推。该方法以Julius Caesar的名字命名,他在私人通信中使用了它。由Caesar密码执行的加密步骤通常作为更复杂的方案的一部分,例如Vigenère密码,并且仍然在ROT13系统中具有现代应用。与所有单字母替换密码一样,Caesar密码很容易破解,在现代实践中基本上没有通信...
调用tf.softmax_cross_entropy_with_logits函数出错解决
W0629 10:14:59.222113 139687708129088 deprecation_wrapper.py:119] From tf02_4.py:93: The name tf.nn.xw_plus_b is deprecated. Please use tf.compat.v1.nn.xw_plus_b instead.W0629 10:14:59.223377 139687708129088 deprecation_wrapper.py:119] From tf02_4.py:100: T...
动态规划 dnf自动寻路过图
#include<iostream> #include<string> using namespace std; <!--more--> int map[100][100] = { 0 }; struct node { int x, y; int step = -1; string find; }; node p; node beginw; node lastw; void tomap(bool goo, char fx = 'rtn')...
递归与递推的区别
今天在学习递归和动态规划时有点迷糊了,两者无法区别,在网上差了下,总接如下:首先要清楚,递推就是迭代。1.递归其实就是利用系统堆栈,实现函数自身调用,或者是相互调用的过程.在通往边界的过程中,都会把单步地址保存下来,知道等出边界,再按照先进后出的进行运算,这正如我们装木桶一样,每一次都只能把东西方在最上面,而取得时候,先放进取的反而最后取出.递归的数据传送也类似.但是递归不能无限的进行下去,必须在一定条件下停止自身调用,因此它的边界值应是明确的.就向我们装木桶一样,我们不能总是无限制的往里装,必须在一定的时候...
括号平衡检查及标记
采用链表栈实现括号匹配检测及标记,代码如下: #include "StackList.h" #include <string> #include <iostream> #include <vector> /* * 检查括号匹配,并给出不匹配的括号。 * 采用链表栈实现 * - 检查范围: [] () {} * - 标记格式: * ^ + * - 私有成员: ...
两个水壶问题 [经典算法]
文章来源:http://liujiacai.net/blog/2014/08/16/two-pot-question/作者:liujiacai问题描述是这样的:假设有一个池塘,里面有无穷多的水。现有2个空水壶a,b,其容积分别为6升和5升。如何只用这2个水壶从池塘里取得3升的水**(最后,这三升水,在其中一个壶里)。这个问题不难,大家自己完成可以推理出来,但是如何让计算机程序自己推算出来呢?一般而言,想把计算机理解这些自然问题,需要某些数学理论作为支撑,这里突然想起前些天看 码农13期Lisp之父约翰•麦卡锡...
算法 - Rabin-Karp (字符串快速查找)
Go 语言的 strings 包(strings.go)中用到了 Rabin-Karp 算法。Rabin-Karp 算法是基于这样的思路:即把字符串看作是字符集长度进制的数,由数值的比较结果得出字符串的比较结果。朴素的字符串匹配算法为什么慢?因为它太健忘了,前一次匹配的信息其实有部分可以应用到后一次匹配中去,而朴素的字符串匹配算法只是简单的把这个信息扔掉,从头再来,因此,浪费了时间。好好的利用这些信息,自然可以提高运行速度。由于完成两个字符串的比较需要对其中包含的字符进行逐个比较,所需的时间较长,而数值比较则...