Seven Yu @ 11/27/2008 (9:32 am)

Adobe CS4 简体中文精简版系列

以下软件下载均来自 异次元の世界

Seven Yu @ 11/23/2008 (12:14 pm)

什么是 E-R 图

Tags: ::

E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。
构成E-R图的基本要素是实体型、属性和联系,其表示方法为:
· 实体型(Entity):用矩形表示,矩形框内写明实体名;比如学生张三丰、学生李寻欢都是实体。
· 属性(Attribute):用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。
· 联系(Relationship):用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。 比如老师给学生授课存在授课关系,学生选课存在选课关系。

Seven Yu @ 11/13/2008 (3:33 pm)

简单的密码评级 js 脚本

Tags: , ::
PLAIN TEXT >> JAVASCRIPT:
  1. // 核心 js 脚本
  2. function checkPwd(obj)
  3. {
  4.     var v = obj.value;
  5.     var n = /[a-z]/.test(v) +       // 小写字母
  6.             /[A-Z]/.test(v) +       // 大写字母
  7.             /\d/.test(v) +          // 数字
  8.             /[^0-9a-z]/i.test(v)// 符号
  9.             (v.length>= 6) +       // 长度级别 1
  10.             (v.length>= 10);       // 长度级别 2
  11.     return n;
  12. }

看看效果

Seven Yu @ 11/12/2008 (12:01 pm)

应观众要求写了一彩票类, 两种算法

Tags: , , ::

第一种算法很简单, 直接用函数对数组进行随机排序.
第二种算法会按定义的次数随机命中, 按命中次数排序.

PLAIN TEXT >> PHP:
  1. <?php
  2. /**
  3. * Author:  Seven Yu
  4. * E-Mail:  dofyyu@gmail.com
  5. * Version: 1.0
  6. * Update: 
  7. */
  8.  
  9. // *************************
  10. // demo
  11. // *************************
  12. $n = new TestNum();
  13.  
  14. // 用算法1算双色球
  15. echo "双色球 (33选6+16选1):\n";
  16. $n->set_len(33);
  17. print_r($n->get_num_1(6));
  18. $n->set_len(16);
  19. print_r($n->get_num_1(1));
  20.  
  21. // 用算法2算大乐透
  22. echo "大乐透 (35选5+12选2):\n";
  23. $n->set_len(35);
  24. print_r($n->get_num_2(999, 5));
  25. $n->set_len(12);
  26. print_r($n->get_num_2(999, 2));
  27.  
  28. // *************************
  29. // class TestNum
  30. // *************************
  31. class TestNum
  32. {
  33.     /**
  34.      * 随机数组类
  35.      * @property int   $len 数组长度
  36.      * @property array $arr 计算数组
  37.      * */
  38.     private  $len;
  39.     private $arr;
  40.    
  41.     /**
  42.      * 构造函数, 初始数组长度
  43.      * @param int $len 数组长度
  44.      * */
  45.     public function __construct($len = 33)
  46.     {
  47.         self::set_len($len);
  48.     }
  49.    
  50.     /**
  51.      * 设置数组长度
  52.      * @param int $len 数组长度
  53.      * */
  54.     public function set_len($len)
  55.     {
  56.         $this->len = $len <= 0 ? 1 : $len;
  57.     }
  58.    
  59.     /**
  60.      * 获取当前数组长度
  61.      * */
  62.     public function get_len()
  63.     {
  64.         return $this->len;
  65.     }
  66.    
  67.     /**
  68.      * 计算数组(算法1)
  69.      * @param int $len 返回数组长度
  70.      * */
  71.     public function get_num_1($len = 6)
  72.     {
  73.         // 重建数组
  74.         self::make_arr();
  75.         // 随机排序
  76.         shuffle($this->arr);
  77.         // 返回需要的数组
  78.         return array_slice($this->arr, 0, $len);
  79.     }
  80.    
  81.     /**
  82.      * 计算数组(算法2)
  83.      * @param int $times 总命中次数
  84.      * @param int $len   返回数组长度
  85.      * */
  86.     public function get_num_2($times = 100, $len = 6)
  87.     {
  88.         // 重建数组
  89.         self::make_arr();
  90.         // 填充新数组, 用来计算命中次数
  91.         $myarray = array_pad(array(), $this->len, 0);
  92.         // 开始计算
  93.         for($i = 0; $i <$times; $i++)
  94.         {
  95.             $myarray[array_rand($this->arr)]++;
  96.         }
  97.         // 倒序排列数组
  98.         arsort($myarray);
  99.         // 获取需要的部分
  100.         $myarray = array_slice($myarray, 0, $len, true);
  101.         // 创建保存返回数值的数组
  102.         foreach($myarray as $num => $times)
  103.         {
  104.             $result[] = ++$num;
  105.         }
  106.         return $result;
  107.     }
  108.    
  109.     // *************************
  110.     // *** private functions ***
  111.     // *************************
  112.    
  113.     /**
  114.      * 重建数组
  115.      * */
  116.     private function make_arr()
  117.     {
  118.         $this->arr = range(1, $this->len);
  119.     }
  120. }
  121. ?>