免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5194 | 回复: 6
打印 上一主题 下一主题

[其他] erlang习作:36选7彩票选号程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-12 13:34 |只看该作者 |倒序浏览
该程序会让你指定其中一个号码(我一般指定我的幸运数字),然后随机产生剩余的六个号码。


  1. -module(lottery).

  2. -export([main/0]).

  3. get_lucky_num() ->
  4.         get_lucky_num(lists:map(fun erlang:integer_to_list/1, lists:seq(1, 36))).

  5. get_lucky_num(List36) ->
  6.         Num = string:strip(io:get_line("Please input your lucky number>"), right, $\n),
  7.         case lists:member(Num, List36) of
  8.                 true ->
  9.                         Num;
  10.                 false ->
  11.                         io:format("Must input an integer between 1 and 36!~n", []),
  12.                         get_lucky_num(List36)
  13.         end.

  14. roll(Result) when length(Result) < 7 ->
  15.         RNum = integer_to_list(random:uniform(36)),
  16.         case lists:member(RNum, Result) of
  17.                 true ->
  18.                         roll(Result);
  19.                 false ->
  20.                         roll([RNum | Result])
  21.         end;
  22. roll(Result) ->
  23.         Result.

  24. output_result(Result) ->
  25.         io:format("Got your numbers: ~s.~n", [string:join(lists:sort(fun(A,B)->list_to_integer(A)<list_to_integer(B) end, Result), " ")]).

  26. main() ->
  27.         output_result(roll([get_lucky_num()])).

复制代码

[ 本帖最后由 formalin14 于 2008-9-12 14:24 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-09-12 15:58 |只看该作者
good

论坛徽章:
0
3 [报告]
发表于 2008-09-12 18:03 |只看该作者
看不懂,不过支持一把。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2008-09-12 21:53 |只看该作者
Erlang 的语法真是。。。

论坛徽章:
0
5 [报告]
发表于 2008-09-13 01:50 |只看该作者
原帖由 MMMIX 于 2008-9-12 21:53 发表
Erlang 的语法真是。。。

从prolog来的
而且号称眼睛杀手

论坛徽章:
12
射手座
日期:2014-10-02 11:31:29程序设计版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-27 06:20:00程序设计版块每日发帖之星
日期:2016-05-27 06:20:00程序设计版块每日发帖之星
日期:2016-05-25 06:20:00每日论坛发贴之星
日期:2016-05-24 06:20:00程序设计版块每日发帖之星
日期:2016-05-24 06:20:0015-16赛季CBA联赛之深圳
日期:2016-05-23 15:33:59程序设计版块每日发帖之星
日期:2016-05-20 06:20:00程序设计版块每日发帖之星
日期:2016-04-26 06:20:00神斗士
日期:2015-12-03 09:27:3215-16赛季CBA联赛之八一
日期:2016-12-29 09:56:05
6 [报告]
发表于 2016-04-15 17:11 |只看该作者
这真是太好了

论坛徽章:
12
射手座
日期:2014-10-02 11:31:29程序设计版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-27 06:20:00程序设计版块每日发帖之星
日期:2016-05-27 06:20:00程序设计版块每日发帖之星
日期:2016-05-25 06:20:00每日论坛发贴之星
日期:2016-05-24 06:20:00程序设计版块每日发帖之星
日期:2016-05-24 06:20:0015-16赛季CBA联赛之深圳
日期:2016-05-23 15:33:59程序设计版块每日发帖之星
日期:2016-05-20 06:20:00程序设计版块每日发帖之星
日期:2016-04-26 06:20:00神斗士
日期:2015-12-03 09:27:3215-16赛季CBA联赛之八一
日期:2016-12-29 09:56:05
7 [报告]
发表于 2016-04-15 22:41 |只看该作者
我的幸运六
  1. %-module(lucky).
  2. -define(P, io:format).

  3. lucky (_, R, 0) -> R;
  4. lucky (L, R, N) ->
  5.     P = random:uniform (L),
  6.     case lists:member (P, R) of
  7.       true -> lucky (L, R, N);
  8.       false -> lucky (L, [P|R], N - 1)
  9.     end.
  10.   
  11. main(_) ->
  12.   {N, S} = {36, 6},
  13.   random:seed (time()),
  14.   Lucky = lucky (N, [], S),
  15.   ?P ("~p~n", [Lucky]),
  16. halt.
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP