彩票,35选7,按照要求进行排列的程序

ninefive 2005-04-06 04:00:14
彩票,35选7
怎样编一个程序,把35选7排列并符合自己的要求,例如在35个数中不选26、31
选34、01并且不选05、06选32、30取这样交集
怎样实现?
谢谢!
...全文
332 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodstuday 2005-04-08
  • 打赏
  • 举报
回复
临时写的,有些地方不是很严谨,仅做参考
'参数说明:n表示产生的位数,yes_str表示要包含的数字,no_str表示不能包含的数字
function rnd35(n,yes_str,no_str)
randomize
str=""
if len(yes_str)>0 then
str=yes_str&","
end if
do while ubound(split(str,","))<n
tmp=int(35*rnd()+1)
if len(tmp)=1 then tmp="0"&tmp
if instr(str,tmp)<=0 then
str=str&tmp&","
end if
if instr(no_str,tmp)>0 then
str=replace(str,tmp&",","")
end if
tmp=""
loop
rnd35=str
end function
'调用示例
Response.Write(rnd35(7,"15,16,17","01,02,03,04,05,06,07,08,09"))
sunboby 2005-04-08
  • 打赏
  • 举报
回复
简单
QQgenie 2005-04-08
  • 打赏
  • 举报
回复
难吗?
自己想想就可能搞定
ninefive 2005-04-08
  • 打赏
  • 举报
回复
UP!
ninefive 2005-04-08
  • 打赏
  • 举报
回复
就是从35个数中随机任选7个数进行排列,但是不选26和31,必选34和01
请问怎么写啊?
谢谢!
超级大笨狼 2005-04-08
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE=vbscript >
'洗牌
Dim N,S,D,P
P=54'牌的数量
Set D = CreateObject("Scripting.Dictionary")
do while D.Count<P
Randomize
N=Int(P * Rnd + 1)
if not D.Exists(cstr(N)) then
D.Add cstr(N),cstr(N)
end if
loop
for each K in D.Keys
S=S & K & " "
next
msgbox replace(trim(S)," ",",")
</SCRIPT>
阿泰 2005-04-08
  • 打赏
  • 举报
回复
又加了个排序,不过发现不选“必选”数字的时候会出错。这个谁要用自己去改改吧 :)

http://www.cnblogs.com/babyt/archive/2005/04/08/134092.html
阿泰 2005-04-08
  • 打赏
  • 举报
回复
竟然花了我一个多小时的时间,看来水平退化的厉害。:(
任意xx选xx.
将以下代码保存成asp文件运行即可

<%
'*************************************************************************
'**文件名称:Lottery.asp
'**功能描述:彩票随机生成器模型
' 本程序为程序原型,未进行校验和保护及美化
' 程序默认为你按照正常规则操作
'**全局变量:
'**调用模块:
'**作 者:Babyt(阿泰)
'**日 期:2005-04-08
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'版权:原创
'授权:免费共享
'Url: http://www.cnblogs.com/babyt
'*************************************************************************
Randomize
Dim iStep
iStep=Request("step")
If iStep="" Then iStep="0"
Select Case iStep
'初始界面
Case "0"
'生成后的界面
%>
<Form method=post>
彩票机生成器<BR>
本程序为模型,未进行校验和保护<BR>
彩球总数 <input type="input" size=10 maxlength=2 value="35" name="a1">
开奖球数 <input type="input" size=10 maxlength=1 value="7" name="a2">
<input type="hidden" name="step" value="1">
<input type="submit" value="生成">
</Form>
<%
Case "1"
'选取后的界面(可以回退到前一界面重新选取)
Dim iAll,iSelect,i
iAll=Request("a1")
iSelect=Request("a2")
%>
<font color=red><%=iAll%></font>选<font color=blue><%=iSelect%></font><BR>
<Form method=post>
本程序为模型,未进行校验和保护<BR>
如果必选和必不选中选中了同样的数字,则默认为选中,不进行提示<BR>
注意,您选择的不选条件越多,生成的速度会越慢<BR>
<input type="submit" value="开始随机生成">
<HR size=1>
必选:<BR>
<%
For i=1 To iAll
%>
<input type="checkbox" name=s1 value="<%=i%>"><%=i%>  
<%
If i Mod 10 =0 Then Response.Write "<BR>"
Next
%>
<HR>
必不选:<BR>
<%
For i=1 To iAll
%>
<input type="checkbox" name=s2 value="<%=i%>"><%=i%>  
<%
If i Mod 10 =0 Then Response.Write "<BR>"
Next
%>
<input type="hidden" name="step" value="2">
<input type="hidden" name="a1" value="<%=iAll%>">
<input type="hidden" name="a2" value="<%=iSelect%>">
</Form>
<%
Case "2"
'使用字串而不使用数组提高对比速度
Dim sS1,sS2,aS1,aS2,iS1,iCount,xrnd
iAll=Request("a1")
iSelect=Request("a2")

'替换里面可能存在的空格
sS1=Replace(Request.Form("s1")," ","")
sS2=Replace(Request.Form("s2")," ","")

Response.Write iAll & "选" & iSelect & "<BR>"
Response.Write "必选:" & sS1 & "<BR>"
Response.Write "必不选:" & sS2 & "<BR>"

sS2= "," & sS2 & ","
'判断必选的个数
'iS1为需要选取的个数
If sS1="" Then
iS1=iSelect
Else
aS1=Split(sS1,",")
'重新组织sS1
sS1= "," & sS1 & ","
iS1=iSelect - Ubound(aS1)-1
'Response.Write "dddd" & iS1
End If
'开始生成
iCount=0
Call GenNumber
Response.Write "选取结果:<font color=red>" & Mid(sS1,2,Len(sS1)-2) & "</font><BR>"

End Select

'数字生成
Function GenNumber()
Randomize
xrnd=Cint(RND*(iAll+1))
If xRnd>=1 And xRnd<=iAll Then
'如果不在必选的范围内,则继续
If Instr(1,sS1, "," & xRnd & ",",1)<=0 Then
'如果不在必不选的范围内,则继续
If Instr(1,sS2, "," & xRnd & ",",1)<=0 Then
'组合成已选字串
sS1=sS1 & xRnd & ","
iCount=iCount+1
If iCount>=iS1 Then
Exit Function
End If
End If
End If
End If
'递归
GenNumber
End Function
%>



ninefive 2005-04-07
  • 打赏
  • 举报
回复
UP!
look4sword 2005-04-07
  • 打赏
  • 举报
回复
不知道楼主说的什么意思,是我理解能力低还是你没说清楚呢?
cocoismywife 2005-04-07
  • 打赏
  • 举报
回复
自己手动建立规则
ninefive 2005-04-07
  • 打赏
  • 举报
回复
UP!
ninefive 2005-04-07
  • 打赏
  • 举报
回复
UP!
VB6.0实现彩票367程序,功能:生成14个过滤条件值保存DB,查询指定期的前X期开出的个数,七期随机号法,统计每个号码出球规律,"随机下注数据,从定号码中遍历组合,在中号码列表中继续筛等。   程序主窗口中的TAB标签项卡实属不错,你可把它用在你的应用程序中。   注:统一起见,下标全部从1用起,0下标不用命名中的Sum这里统一为 个数 的意思,Total一般的数值变量,尽量统一使用Long型,因为Long型的取值范围大,而且速度快一些,只是内存多一点。   1000个数   Quick最快,循环只有500多次   Bucket第二,循环只有999次   过滤操作具体执行过程   一个条件一个条件的全部过滤所有   一次一注号码轮流进行一个条件一个条件的过滤,一次一个条件过滤全部,保留下来的进行下一轮过滤,那容错就几乎无法实现了,如果要实现容错机制的话,应该是一注号码要通过全部过滤条件,然后可利用容错,符合条件和容错就保留下来,鉴于保存所有号码的数组是二维的,那么就直接对保存的二维数组进行各个条件过滤,不可能每次用一个一维数组保存,再用这个一维来过滤。用一个一维数组来记录容错情况,也就是符合多少个条件,比如14个条件,设定了容错率为6,那么只要有8个或以上过滤条件符合,就保留下来。放到一个新的二维数组中奇号个数,0-7   参数:二维数组(),存放一注号码,7个   返回值:奇号的个数,一个Variant数组,里面分别是每注的奇数的个数   UBound(Num, 1) 第一维是注数

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧