算法过硬的人进来,如何最快速地把彩票双色球33选7的所有可能组合写入数据库

newlive001 2009-05-15 10:42:28
只算6个红号
数学公式算出来 C33(6)=(33*32*31*30*29*28)/(6*5*4*3*2) = 1107568
也就是说插入数据库后最终有一百一十多万条记录, 我数学不好就只采用了笨办法转成二进制,从1 到 33位进制地对比如111111000000000000000000000000
而 111111000000000000000000000000000 = 8455716864 也就循环84亿多次,把每个数值转成二进制字符串,判断如果包含1的个数为6 就如库,可是效率太慢了,我的双核处理器 跑了个晚上才跑到10亿多,这样算下来 差不多要连续开机4天才能把数据入库,谁有什么高招快速地算出数据入库?


还有一个问题为什么这么慢呢 现在的处理器都是GHZ 1HZ 相当于 1000*1000*1000 每秒运算10亿次,我AMD 3600++ 相当于3.6GHZ 算起来每秒运算36亿次,咋个我跑了一晚晚才跑完10亿个循环,当然还包括入库,界面元素更新等操作
...全文
8661 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
chnchnl 2012-04-18
  • 打赏
  • 举报
回复
用排序组合就行了,算110万个注,也就几分钟的事儿,我写的asp的源码。
zxw1986215 2011-06-16
  • 打赏
  • 举报
回复
太复杂。。
hery2002 2009-05-23
  • 打赏
  • 举报
回复
.
csdyyr 2009-05-22
  • 打赏
  • 举报
回复
--电脑很慢,用了3:46"
;WITH CTE AS
(
SELECT TOP 33 ID=ROW_NUMBER() OVER (ORDER BY GETDATE()) FROM syscolumns
)
,CTE2 AS
(
SELECT ID,CAST(ID AS VARCHAR(8000)) AS COP,LVL=1 FROM CTE
UNION ALL
SELECT CTE.ID,COP=COP+','+RTRIM(CTE.ID),LVL+1 FROM CTE,CTE2 WHERE CTE.ID<CTE2.ID AND LVL<6
)
SELECT ROW_NUMBER() OVER (ORDER BY GETDATE()),COP FROM CTE2 WHERE LVL=6
/*
COP
-------------------- ---------------------------------------------------------
1 33,32,31,30,29,1
2 33,32,31,30,29,2
3 33,32,31,30,29,3
4 33,32,31,30,29,4
5 33,32,31,30,29,5
6 33,32,31,30,29,6
..........
1107564 7,6,5,4,2,1
1107565 7,6,5,3,2,1
1107566 7,6,4,3,2,1
1107567 7,5,4,3,2,1
1107568 6,5,4,3,2,1

(1107568 row(s) affected)
*/
ai_li7758521 2009-05-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 baronyang 的回复:]
有人研究过六合彩吗?那乒乓球就一个个的滚出来,不知是否可以用电脑算呢
[/Quote]你觉得有的算吗?
你自己拿硬币往空中投,算算掉下来是正面还是反面!
如果排除作弊,那都是随机事件。
lgq_liang 2009-05-22
  • 打赏
  • 举报
回复
留下脚印先
bber01 2009-05-22
  • 打赏
  • 举报
回复
result number: 736281
2113929216
1901068288
1880195072
1879054337
1762132000
........
5488
1340
bber01 2009-05-22
  • 打赏
  • 举报
回复

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<script>
function oo()
{
var str =
"1," +
"2," +
"4," +
"8," +
"16," +
"32," +
"64," +
"128," +
"256," +
"512," +
"1024," +
"2048," +
"4096," +
"8192," +
"16384," +
"32768," +
"65536," +
"131072," +
"262144," +
"524288," +
"1048576," +
"2097152," +
"4194304," +
"8388608," +
"16777216," +
"33554432," +
"67108864," +
"134217728," +
"268435456," +
"536870912," +
"1073741824"/* +
"2147483648," +
"4294967296"*/;
var a = str.split(",");
var result = new Array(736281);
var resultStr = "";
var i = 0;
alert ("good");
for (var x6 = 30/*32*/; x6 >= 5; x6--)
for (var x5 = x6 - 1; x5 >= 4; x5--)
for (var x4 = x5 - 1; x4 >= 3; x4--)
for (var x3 = x4 - 1; x3 >= 2; x3--)
for (var x2 = x3 - 1; x2 >= 1; x2--)
for (var x1 = x2 - 1; x1 >= 0; x1--, i++)
{
result[i] = a[x6] | a[x5] | a[x4] | a[x3] | a[x2] | a[x1];
}
document.write ("result number: " + i + "<br>");
document.write ("<table>");
for (var i = 0; i < result.length; i += 1000)
{
document.write ("<tr><td>" + result[i] + "</td></tr>");
}
document.write ("</table>");
alert ("good");
}
</script>
</head>

<body>

<SCRIPT>oo()</SCRIPT>

</body>
</html>

zhaoweiting0609 2009-05-15
  • 打赏
  • 举报
回复
JonasFeng 2009-05-15
  • 打赏
  • 举报
回复
我也研究过双色球,不过后来实在没什么规律。
放弃了。
--小F-- 2009-05-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jia_guijun 的回复:]
SQL codeselect top 33 identity(int,1,1) id into #t from sys.objects

select a.id id1,b.id id2,c.id id3,d.id id4,e.id id5,f.id id6
from #t a cross join #t b cross join #t c cross join #t d cross join #t e cross join #t f
where a.id<>b.id and a.id<>c.id and a.id<>d.id and a.id<>e.id and a.id<>f.id
and b.id<>c.id and b.id<>d.id and b.id<>e.id and b.id<>f.id
and c.id<>d.id and…
[/Quote]

强 好多AND
贾桂权 2009-05-15
  • 打赏
  • 举报
回复
select top 33 identity(int,1,1) id into #t from sys.objects

select a.id id1,b.id id2,c.id id3,d.id id4,e.id id5,f.id id6
from #t a cross join #t b cross join #t c cross join #t d cross join #t e cross join #t f
where a.id<>b.id and a.id<>c.id and a.id<>d.id and a.id<>e.id and a.id<>f.id
and b.id<>c.id and b.id<>d.id and b.id<>e.id and b.id<>f.id
and c.id<>d.id and c.id<>e.id and c.id<>f.id
and d.id<>e.id and d.id<>f.id
and e.id<>f.id
/*结果
id1,id2,id3,id4,id5,id6
-----------------------
4 6 5 2 3 1
4 7 5 2 3 1
4 8 5 2 3 1
4 9 5 2 3 1
4 10 5 2 3 1
4 11 5 2 3 1
4 12 5 2 3 1
4 13 5 2 3 1
4 14 5 2 3 1
4 15 5 2 3 1
4 16 5 2 3 1
4 17 5 2 3 1
4 18 5 2 3 1
4 19 5 2 3 1
4 20 5 2 3 1
4 21 5 2 3 1
4 22 5 2 3 1
4 23 5 2 3 1
4 24 5 2 3 1
4 25 5 2 3 1
...
...
...
*/
newlive001 2009-05-15
  • 打赏
  • 举报
回复
据说 双色球摇奖机器从德国进口的,先把数据统计出来,然后要什么号就出什么号。
--------------90% 以上的彩票都是这样操作的,但是对外面人来说还 是随机的,只要不像双色球一样,知道该出什么号了,然后叫内部工作人员聘人去买瓜分 钱就好了, 电脑算出号一般是算出损失最小的号,即使是这样,对外面人来说了是相对随机,但是内部人员瓜分钱就太恶心了
wsxcdx 2009-05-15
  • 打赏
  • 举报
回复
。。。怎么就不出我买的号呢?
贾桂权 2009-05-15
  • 打赏
  • 举报
回复
据说 双色球摇奖机器从德国进口的,先把数据统计出来,然后要什么号就出什么号。
人鱼传说 2009-05-15
  • 打赏
  • 举报
回复
有人研究过六合彩吗?那乒乓球就一个个的滚出来,不知是否可以用电脑算呢
newlive001 2009-05-15
  • 打赏
  • 举报
回复
那代码我也路了一个小是最后数据库大小超过限制,也没完成
youzhj 2009-05-15
  • 打赏
  • 举报
回复
哇塞,这个代码让我的古董电脑与世长辞了!

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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