12 2012 档案

list相关的习题
摘要:代码如下 1 -module(adv_list). 2 -export([filter/2, reverse/1, concatenate/1, flatten/1]). 3 4 filter(List, Value) -> 5 FiltedList = [X || X<-List, X=<Value], 6 io:format("filted:~w~n", [FiltedList]). 7 8 reverse(List) -> 9 RevertedList = revert(List, []),10 io:format("reverted 阅读全文

posted @ 2012-12-21 17:22 应无所住而生其心 阅读(322) 评论(0) 推荐(0)

用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 应无所住而生其心 阅读(253) 评论(0) 推荐(0)

用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 应无所住而生其心 阅读(542) 评论(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 应无所住而生其心 阅读(537) 评论(0) 推荐(0)

Raspberry Pi入手指南
摘要: 阅读全文

posted @ 2012-12-12 23:43 应无所住而生其心 阅读(166) 评论(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 应无所住而生其心 阅读(556) 评论(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 应无所住而生其心 阅读(314) 评论(0) 推荐(0)

用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 应无所住而生其心 阅读(2116) 评论(0) 推荐(0)

用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 应无所住而生其心 阅读(1308) 评论(0) 推荐(0)

导航