zoukankan      html  css  js  c++  java
  • 数学中的组合算法(sql)

    概念:  
      排列:   P(n,r)     从n个中选r个进行排列(与顺序有关)  
      组合:   C(n,r)     从n个中选r个进行组合(与顺序无关)    
    create   procedure   sp_test(@n   int,@r   int)  
      as  
      begin  
              if   isnull(@n,0)<isnull(@r,0)  
                      return    
       
              set   rowcount   @n  
              select   identity(int,1,1)   as   num   into   #   from   sysobjects   a,syscolumns   b  
              set   rowcount   0  
               
              declare   @sql   varchar(8000),@ord   varchar(8000),@i   int  
              set   @sql='select   *   from   #   [1]'  
              set   @ord='[1].num'  
              set   @i=1  
              while   @i<@r  
              begin  
                      set   @i=@i+1  
                      set   @sql=@sql+'   inner   join   #   ['+rtrim(@i)+']   on   ['+rtrim(@i)+'].num>['+rtrim(@i-1)+'].num'  
                      set   @ord=@ord+',['+rtrim(@i)+'].num'  
              end  
       
              set   @sql=@sql+'   order   by   '+@ord  
       
              print   @sql  
               
              exec(@sql)  
      end  
      go  
       
      exec   sp_test   5,1  
      exec   sp_test   5,2  
      exec   sp_test   5,3  
      go  
       
      drop   procedure   sp_test  
      go
  • 相关阅读:
    洛谷 P3850 [TJOI2007]书架
    洛谷 P2073 送花
    洛谷 P2343 宝石管理系统
    浅谈 fhq-treap(无旋treap)
    洛谷 P4568 [JLOI2011]飞行路线
    洛谷 T59576 下一个回文树(zhoutbafo)
    求SG函数(两种方法)
    python3+Appium自动化08-数据配置yaml
    python3+Appium自动化07-滑动操作以及滑动方法封装
    python3+Appium自动化06-屏幕截图
  • 原文地址:https://www.cnblogs.com/luluping/p/1532266.html
Copyright © 2011-2022 走看看