2012年12月18日

用Erlang求解建环问题

摘要: 代码如下所示 1 -module(ring). 2 -behaviour(gen_server). 3 -export([start/3, ring_item_init/1]). 4 5 %% 行为模式gen_server的回调函数 6 -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). 7 8 -define(SERVER, ?MODULE). 9 10 %% 环中各个节点进程的状态,id:标识,从1开始,next:下一个进程号 11 -... 阅读全文

posted @ 2012-12-18 16:07 应无所住而生其心 阅读(244) 评论(0) 推荐(0) 编辑

2012年12月13日

用Erlang实现二分查找算法

摘要: 算法实现如下 1 -module(bisearch). 2 -export([start/2]). 3 4 start(Value,List) -> 5 Len = length(List), 6 FirstValue = lists:nth(1, List), 7 LastValue = lists:nth(Len, List), 8 if FirstValue =:= Value orelse LastValue =:= Value -> 9 io:format("found ~w~n", [Value]); % 查找值在列表的首... 阅读全文

posted @ 2012-12-13 16:29 应无所住而生其心 阅读(536) 评论(0) 推荐(0) 编辑

用Erlang实现冒泡排序算法

摘要: 直接上代码 1 -module(bubblesort). 2 -export([start/1]). 3 4 start(List) -> 5 SortedList = sort(List, []), 6 io:format("SortedList:~w~n", [SortedList]). 7 8 %% 冒泡算法:每次step得到一个最大值,对余下的列表再进行递归调用 9 sort([], SortedList) ->10 SortedList;11 sort(List, SortedList) ->12 {Max, T} = step(List),13 阅读全文

posted @ 2012-12-13 09:50 应无所住而生其心 阅读(529) 评论(0) 推荐(0) 编辑

2012年12月12日

Raspberry Pi入手指南

摘要: 阅读全文

posted @ 2012-12-12 23:43 应无所住而生其心 阅读(161) 评论(0) 推荐(0) 编辑

用Erlang实现有序列表合并

摘要: 采用的算法为分别取出两个有序列表的第一个元素进行比较,将较小的元素从源容器列表移到新列表中 1 -module(sortedlistconcat). 2 -export([start/2]). 3 4 start(L1, L2) -> 5 L = concat(L1, L2, []), 6 io:format("~w~n", [L]). 7 8 concat([H1|T1], [H2|T2], L) -> 9 if10 H1 =< H2 -> concat(T1, [H2|T2], [H1] ++ L);11 H1 > H2 -> c.. 阅读全文

posted @ 2012-12-12 16:55 应无所住而生其心 阅读(551) 评论(0) 推荐(0) 编辑

用Erlang实现汉诺塔

摘要: 递归的算法很简单,直接上代码 1 -module(hanoi). 2 -export([start/1]). 3 4 start(N) -> 5 move(N, a, b, c). 6 7 %% Source:源圆柱,Middle:中间圆柱,Destination:目的圆柱 8 -spec move(N::integer(), Source::atom(), Middle::atom(), Destination::atom()) -> ok. 9 move(1, Source, _Middle, Destination) ->10 io:format("~w fr 阅读全文

posted @ 2012-12-12 10:36 应无所住而生其心 阅读(306) 评论(0) 推荐(0) 编辑

2012年12月10日

用Erlang实现快速排序算法

摘要: 排序算法的原理无需多说,直接上代码 1 -module(quicksort). 2 -export([start/1]). 3 4 %% 程序入口 5 %% List:用户输入的待排序的数值列表 6 start(List) -> 7 SortedList = calu(List), 8 io:format("sorted list:~w~n", [SortedList]). 9 10 %% 得到排序后的数值列表11 calu([Key|RestList]) ->12 {LittleList, GreatList} = calu_sort(Key, RestLis 阅读全文

posted @ 2012-12-10 17:07 应无所住而生其心 阅读(2104) 评论(0) 推荐(0) 编辑

2012年12月4日

用erlang求解经典数学问题(2)-电梯调度问题

摘要: 【题目】 假设电梯只在某一楼层停,然后乘客下电梯步行至各自目的楼层,求电梯应停在哪一层能使乘客步行的楼层数和最少。【问题分析】总论: 采用归纳总结的方法,先分析简单的情况,总结出规律,再推演出算法。步骤1:分析题目中的输入、输出 假设楼层有7层,在2至7层下电梯的乘客数量分别为a、b、c、d、e、f,电梯停靠在x层,则所有乘客步行的总层数 y = |x-2|*a + |x-3|*b + |x-4|*c + |x-5|*d + |x-6|*e + |x-7|*f 此函数是一个区间段函数,在相邻整数区间段内事一条斜率为正或为负的线段步骤2:分析区间段 下面对各个区间段进行分析 当2=<x&l 阅读全文

posted @ 2012-12-04 11:47 应无所住而生其心 阅读(1297) 评论(0) 推荐(0) 编辑

2012年11月29日

用erlang求解经典数学问题(1)-农夫过河问题

摘要: 【题目】 一位农夫带着一只狼,一只羊和一些菜过河。河边只有一条船,由于船太小,只能装下农夫和他的一样东西。在无人看管的情况下,狼要吃羊,羊要吃菜,请问农夫如何才能用最快的方法将这三样东西平安过河。【问题分析】总论: 农夫、狼、羊、菜可以用一个四元组来表示,他们要么在河这边,要么在河那边,只有两种状态,所以最适合用布尔代数来进行分析。步骤1:分析题目中的输入、输出 我们用2#xxxx这4个比特位数字来表示四元组,从高到低位分别表示农夫(b3)、狼(b2)、羊(b1)、菜(b0),每个bit位可为0或1,由此得到2#0000、2#0001……2#1110、2#1111这16种状态,0表示这河这边, 阅读全文

posted @ 2012-11-29 16:58 应无所住而生其心 阅读(2403) 评论(1) 推荐(1) 编辑

2012年11月26日

未来搜索:基于数据的聚合

摘要: 一旦用户搜索到Knowledge Graph的关键词汇时,页面右侧将会出现一个与该词汇具有特殊相关性的信息框。为用户找出更加准确的信息,作出做全面的总结并提供更有深度相关的信息。把与关键词相关的知识体系系统化地展示给用户。Google 希望藉由 Knowledge Graph 来在普通的字串搜索上叠一层相互之间的关系,协助使用者更快找到所需的资料的同时,也可以更了解使用者需要的是什么,从而往以「知识」为基础的搜索更近一步。 阅读全文

posted @ 2012-11-26 20:40 应无所住而生其心 阅读(172) 评论(0) 推荐(0) 编辑

导航