--[[
组合概率
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Problem Description:
某生产零件的工厂为方便管理场内生产的零件种类,现将他们生产的零件从低等到高等零件排序,序号分别为1,2..n,已知该厂的任意几个低等的零件可以组合成更高等的零件,零件的序号代表了零件的等级,比如5号零件可以由1号和4号零件组合而成,也可以有2号和3号零件组合而成。 现有一个序号为 x 的零件,它是由n个序号在[a,b]区间内的零件组合而成,求n个序号在[a,b]区间内的零件组合为 x 零件的概率 一行输入四个整数依次为n,a,b,x,用空格分隔。数据规模和约定
对于50%的数据,n≤5.
对于100%的数据,n≤100,b≤100 输出一行为组合为 x 零件的概率,小数点后保留四位小数
--]] local M = 101
local N = 101
local a = 0
local b = 0 local function init()
local F = {}
for i=1,M do
F[i-1] = {}
for j=1,N do
F[i-1][j-1] = 0
end
end
return F
end function P(F, n, X)
if F[n][X] == nil then
return 0
end if n == 0 and X == 0 then
F[0][0] = 1
return 1
end if n == 0 and X ~= 0 then
F[0][X] = 0
return 0
end for k=a,b do
if X>=a then
F[n][X] = F[n][X] + P(F, n-1, X - k)
end
end
F[n][X] = F[n][X] / (b-a+1)
return F[n][X]
end function run(n,x,ta,tb)
local F = init()
a = ta
b = tb
local v = P(F, n, x)
local l = string.format("%.4f", v)
print(l)
end run(1, 4, 1,5) -- expected: 1/5 = 0.2000
run(2, 10, 1, 9) -- expected: 4/36 = 1/9 = 0.1111
run(4, 23, 1, 20) -- expected: 0.0106

最新文章

  1. SQL注入攻防入门详解(2)
  2. cesiumjs开发实践之坐标转换
  3. C#序列化与反序列化方式简单总结
  4. loadrunner --global schedule设置
  5. Android实现滑动刻度尺效果,选择身高体重和生日
  6. 如何解决Mac里面解压后文件名乱码问题
  7. 微信公众平台应用开发:方法、技巧与案例--柳峰,Java语言版本
  8. .net 常用Response.ContentType
  9. NYOJ-86 找球号(一)AC 分类: NYOJ 2014-02-02 10:45 160人阅读 评论(0) 收藏
  10. NetSerialComm的基本使用方法
  11. 网页启动Windows服务
  12. JS OffsetParent属性
  13. Python2.7 xlwt安装 No module named future.builtins
  14. js 中bind
  15. CDN及CDN加速原理
  16. 多线程之 Thread类
  17. html:input的type=number的时候maxlength失效问题
  18. Delphi 如何操作Excel
  19. 剑指offer(24)二叉树中和为某一值的路径
  20. Python模块——logging模块

热门文章

  1. zombie-phantom
  2. unix more命令
  3. Java程序猿的JavaScript学习笔记(8——jQuery选择器)
  4. Random类短时间大量随机重复的问题
  5. BZOJ 2337: [HNOI2011]XOR和路径( 高斯消元 )
  6. BZOJ 1668: [Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富( dp )
  7. .net 和java JSON 模板
  8. php Smarty详细配置
  9. centos6安装PHP5.4
  10. MYSQL异常和错误机制