TSM + Oracle备份报错 ORA-19511: Error received from media manager layer, erro
2013-03-18 16:24
483 查看
洗扑克牌的原理其实与乱数排列是相同的,都是将一组数字(例如1~N)打乱重新排列,只不过洗扑克牌多了一个花色判断的动作而已。
初学者通常会直接想到,随机产生1~N的乱数并将之存入阵列中,后来产生的乱数存入阵列前必须先检查阵列中是否已有重复的数字,如果有这个数就不存入,再重新产生下一个数,运气不好的话,重复的次数就会很多,程式的执行速度就很慢了,这不是一个好方法。
以1~52的乱数排列为例好了,可以将阵列先依序由1到52填入,然后使用一个回圈走访阵列,并随机产生1~52的乱数,将产生的乱数当作索引取出阵列值,并与目前阵列走访到的值相交换,如此就不用担心乱数重复的问题了,阵列走访完毕后,所有的数字也就重新排列了。
至于如何判断花色?这只是除法的问题而已,取商数判断花色,取余数判断数字,您可以直接看程式比较清楚。
php代码实现如下:
初学者通常会直接想到,随机产生1~N的乱数并将之存入阵列中,后来产生的乱数存入阵列前必须先检查阵列中是否已有重复的数字,如果有这个数就不存入,再重新产生下一个数,运气不好的话,重复的次数就会很多,程式的执行速度就很慢了,这不是一个好方法。
以1~52的乱数排列为例好了,可以将阵列先依序由1到52填入,然后使用一个回圈走访阵列,并随机产生1~52的乱数,将产生的乱数当作索引取出阵列值,并与目前阵列走访到的值相交换,如此就不用担心乱数重复的问题了,阵列走访完毕后,所有的数字也就重新排列了。
至于如何判断花色?这只是除法的问题而已,取商数判断花色,取余数判断数字,您可以直接看程式比较清楚。
php代码实现如下:
<?php class wash_cards { function __construct() { $n = 52; $poker = array(); // 初始化阵列 for($i = 1; $i <= $n; $i++) { $poker[$i] = $i; } // 洗牌 for($i = 1; $i <= $n; $i++) { $j = mt_rand() % 52 + 1; $tmp = $poker[$i]; $poker[$i] = $poker[$j]; $poker[$j] = $tmp; } for($i = 1; $i <= $n; $i++) { // 判断花色 switch(intval(($poker[$i]-1) / 13)) { //每13一循环,但13的倍数仍是该循环对应的花色,所以poker[i]要-1 case 0: echo iconv('utf-8', 'gbk', "桃"); break; case 1: echo iconv('utf-8', 'gbk', "心"); break; case 2: echo iconv('utf-8', 'gbk', "砖"); break; case 3: echo iconv('utf-8', 'gbk', "梅"); break; } // 扑克牌数字 $remain = $poker[$i] % 13; switch($remain) { case 0: $remain = 'K'; break; case 12: $remain = 'Q'; break; case 11: $remain = 'J'; break; default: } echo $remain; if(strlen($remain) == 1) { echo ' '; } else { echo ' '; } if($i % 13 == 0) echo "\n"; } } } new wash_cards();
相关文章推荐
- ORA-16198: LGWR received timedout error from KSR
- oracle语句报错 * ERROR at line 2: ORA-00923: FROM keyword not found where expected
- [转]SSIS error DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER when connecting to Oracle data source
- TSM-ANR2579E ORA-19511(Oracle 备份)
- RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available
- Oracle Error:ORA-01465: 无效的十六进制数字【解决办法】
- ORACLE RMAN备份失败之ORA-19599
- nested exception is java.lang.IllegalAccessError: tried to access method net.sf.ehcache.CacheManager.()V from class org.hibernat
- ORA-01033: ORACLE initialization or shutdown in progress (DBD ERROR: OCISessionBegin)
- ORA-28547:connection to server failed, probable Oracle Net admin error错误,解决方法
- ORA-06553: PLS-801: internal error [56319],64位oracle降级为32位的处理
- navicat连接oracle数据库报ORA-28547: connection to server failed, probable Oracle Net admin error错误的解决方法
- Unable To Import Or Enter Sale Order - ORA-20001: APP-FND-01564: ORACLE error - 1422 in get_seq_info
- cx_Oracle.DatabaseError: ORA-12541: TNS:no listener
- 关于ORACLE查询列加()or () 报ORA-00923:未找找到要求的FROM关键字
- ERROR: ORA-01033: ORACLE initialization or shutdown in progress
- oracle备份报error 12541错解决方法
- Oracle 11g RAC 补丁升级时报ORA-01565: error in identifying spfileprod.ora 错误处理
- Oracle ORA-03137: TTC protocol internal error : [12333] 故障分析
- Oracle 11g RAC RMAN ORA-00245 control file backup operation failed 错误 与 控制文件备份 说明