储存过程处理双色球购买方案保证只赚不亏

--本人先说一下自己购买方案,同意的请赞成。

--我们知道双色球是6+1模式,6就是从33个红球中选6个红球,而1就是从后面16个蓝球中选一个,同时我们也知道只要后面那个蓝球中奖了就可以获得5元。

--而我们知道蓝球中奖得概率是1/16,只要我们随便选择1~16号中任意一个蓝球,购买16次总会有一次中奖(如果没中那就加几次,20次咯),

--现在从这里开始就是购买方式了,第一次我们买2块,中奖了就获得5块,没中奖,我们第二次还是买2块,中奖了获得5块(总投入4块钱),然后又重新开始买,又从

--第一次开始买2块,第二次买2块,第三次买4块,中奖(4/2*5=10块),总投入2+2+4=8块,盈利2块,然后又重新从一次2块开始买。

--只要我们后面那个蓝球中了,就重新从一次开始买,只要我们保证后面那个蓝球不变,前面的6个球可以随便变(因为一注球只能投99倍,所以到了后面次数多了你就要变前面的球),虽然每次盈利都好少,但是我们不亏,而且很有可能中个10块的,那中了10块的那肯定赚的多。

--坚持守号就一定能赚大奖,而且又不亏。大乐透是5+2(35个选5个,12个选2个),后面2个蓝球(1/12*1/11=1/121)需要坚持121次后面2个球才能中一次,大乐透的概率就很低了,所以本人不建议买大乐透。
--双色球购买方案保证只赚不亏,(双色球中1万以上需交税20%此方案暂未考虑)
Alter Proc CaiPiao
(
  @Count int
)
as
begin
  --临时表用来存储每次买多少,盈利多少,获奖收入多少,总共付出多少
  Create Table #Temp
  (
    SeqNo int, --次数
    Buy int,   --每次买多少钱(双色球2元一注必须是偶数)
    ProfitOut int, --总共付出多少钱
    ProfitIn int, --中奖收益多少
    Profit int  --利润多少
  )
  Declare @i int = 1
  Declare @j int = 1
  Declare @Buy int = 0
  Declare @SumOut int = 0
  Declare @SumIn int = 0
  Declare @LastSumOut int = 0
    
  while(@i<[email protected])  --大循环
  begin
    
      while(@j<[email protected]) --判断每次买多少才不亏
      begin
        
        if @i = 1   --第一次从买2块开始,中奖得5块,付出2块,盈利3块
        begin
           Set @Buy = 2
           Set @SumIn = @Buy/2*5
           Set @SumOut = @Buy
        end
        if @i = 2  --第二次买2块,中奖得5块,付出4块,盈利1块
        begin
           Set @Buy = 2
           Set @SumIn = @Buy/2*5
           Set @SumOut [email protected] + @Buy
        end
        
        if @i > 2 And @i < 8  --.....
        begin
           Set @Buy = @Buy + 2    
           if (@Buy/2*5)>[email protected]+ @Buy
           begin
            Set @SumIn = @Buy/2*5
            Set @SumOut [email protected] + @Buy
            Set @j = 1
            break
           end           
        end
        
        if @i >= 8  --.....
        begin
           Set @Buy = @Buy + 2    
           if ((@Buy+2)/2*5)>[email protected]+ @Buy
           begin
            Set @SumIn = (@Buy+2)/2*5
            Set @SumOut [email protected] + @Buy
            Set @j = 1
            break
           end       
        end
                        
        Set @[email protected]+1
        
      end
    
    --处理插入数据
    insert into #Temp (SeqNo,Buy,ProfitOut,ProfitIn,Profit)values(@i,@Buy,@SumOut,@SumIn,@[email protected])
    
    Set @[email protected]+1
    
  end
 
 select SeqNo As 购买次数,Buy As 本次买多少,ProfitOut As 总共付出,ProfitIn As 获奖收入,Profit As 盈利 from #Temp
 
 Drop Table #Temp
 
 
end

-- Exec CaiPiao 9

时间: 2024-10-12 06:47:41

储存过程处理双色球购买方案保证只赚不亏的相关文章

MySQL 储存过程-原理、语法、函数详细说明

Mysql储存过程是一组为了完成特定功能的SQL语句集,经过编译之后存储在数据库中,当需要使用该组SQL语句时用户只需要通过指定储存过程的名字并给定参数就可以调用执行它了,简而言之就是一组已经写好的命令,需要使用的时候拿出来用就可以了.想要快速的了解Mysql储存过程吗,就一同看一下下文的"Mysql储存过程-原理.语法.函数详细说明"吧! 一.Mysql储存过程简介:储存过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序

四十二、视图、触发器、事务、储存过程、函数、流程控制和索引等知识的应用

一.视图 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么用视图 当反复用到两张表的连接操作时,可以将连成的表当做视图保存下来,下次直接使用 3.怎么用视图 create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id; 删除视图:drop view teacher2course 4.注意: 在硬盘中,视图只

【转】xp_dirtree储存过程漏洞

sql server 2000漏洞一直很多前段时间我自己的服务器就出现了一个sql的临时储存过程漏洞漏洞扩展:xp_dirtree储存过程 事前:最近发现一个漏洞是sql服务器造成的前几天正好没有什么事情,就用阿d的sql注入工具对自己服务器的网站进行注入,偶然发现了使用mssql的网站浸染可以利用sql注入的形式得到整个服务器上所有目录(我的服务器作了安全设置的)依然可以看见,然后在服务器上安装了一个抓包工具对sql server进行抓包发现,使用工具连接sql漏洞xp_dirtree读取目录

SQL获取所有数据库名、表名、储存过程以及参数列表

SQL获取所有数据库名.表名.储存过程以及参数列表 1.获取所有用户名:SELECT name FROM Sysusers where status='2' and islogin='1'islogin='1'表示帐户islogin='0'表示角色status='2'表示用户帐户status='0'表示糸统帐户2.获取所有数据库名:SELECT Name FROM Master..SysDatabases ORDER BY Name3.获取所有表名SELECT Name FROM Databas

储存过程 (创建,调用,查询,删除)

创建语法: DELIMITER $$  #自定义结束符 CREATE PROCEDURE 储存过程(参数列表) Begin 储存过程体: End $$  #用自定义$$结束代码 DELIMITER:创建储存完毕在修改回来 分号是结束符,在dos窗口了:会结算剩余代码,为了保证储存过程是完整的,需要使用delimiter自定义结束符 调用语法: Call 储存过程名(参数): 查询语法: 查询数据库当前所有的存储过程:show procedure status 查询数据库指定的存储过程:show

常用的系统储存过程

--1.sp_databas:列出服务器上的所有数据库信息,包括数据库名称和数据库大小 exec sp_databases --2.sp_helpdb:报告有关指定数据库或所有数据库的信息 exec sp_helpdb --3.sp_renamedb:更改数据库的名称 exec sp_renamedb '张总','何老大' --4.sp_tables:还回当前环境下可查询的表或视图的信息 exec sp_tables --5.sp_columns:还回某个表或视图的列信息,包括列的类型和长度 e

mysql的储存过程

储存过程可以简单理解为一条或多条SQL语句的集合. 储存过程的操作包括创建储存过程,查看储存过程,更新储存过程和删除储存过程. 1. 创建储存过程 1.1 储存过程语法结构 在MySQL中创建存储过程通过SQL语句CREATE PROCEDURE来实现,其语法形式如下: CREATE PROCEDURE procedure_name([procedure_paramter[,…]]) [characteristic…] routine_body procedure_name参数表示所要创建的储存

SQL SERVER 判断是否存在并删除某个数据库、表、视图、触发器、储存过程、函数

-- SQL SERVER 判断是否存在某个触发器.储存过程 -- 判断储存过程,如果存在则删除IF (EXISTS(SELECT * FROM sysobjects WHERE name='procedurename' AND type='P')) DROP PROCEDURE procedurename -- 判断触发器,如果存在则删除IF (EXISTS(SELECT * FROM sysobjects WHERE id=object_id(N'[dbo].[triggername]')

Mysql储存过程4:mysql变量设置

默认全局变量是两个@@开头, 可用show variables查看所有默认变量: @@user #declare定义变量只能用在储存过程中 #declare 变量名 数据类型 可选类型 declare num int: declare age int defalut 100; #定义全局变量, 可以用 set声明: #@变量名 #有两种写法, @name := value / @name = value set @age=18; set @age:=18; select @name:=user(