题目是文绉绉的说法,背景来于群里提问,是一份文件里面关于最高投标限价的确定。

最高投标限价下浮率在开标前在开标现场采取逐标段摇珠方式确定,摇珠操作办法如下:在下浮率摇珠范围内,以0.1%为以一档次增序确定摇珠号码,不少于31个球,每个标段各一次性摇取3个球(摇出的球不放回),摇出3个球对应的下浮率的平均值即为本标段的下浮率(注:下浮率的平均值四舍五入取整到0.001%)

最高评标限价=最高投标限价 x (1 - 下浮率)

用简单粗暴的数学应用题来描述,就是

1到31中依次不放回挑三个数字,这三个数字的平均值为a,我要从1到31中选一个数字,这个数字高于a百分1的话扣1.5分,低百分1的话就扣0.5分,问选择哪个数字扣分最少的概率最大?

我用了随机抽取和平均值判断的方法来计算

import random
s = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31] def choose(s,no):
#挑选三个数字
dic = {}
c = random.sample(s,3)
ave = (c[0]+c[1]+c[2])/3
a = random.sample(c,1)
a = float(a[0])
if a > ave:
score = ((((a - ave)/ave)*100)//1)*1.5
else:
score = ((((ave - a)/ave)*100)//1)*0.5
dic[no] = [a,score]
return dic
flag = 1000000
record = {}
no = 0
while flag:
k = choose(s,no)
record.update(k)
flag = flag - 1
no += 1
r = list(record.values())#如果按照平均值来算
final={}
for i in s:
count = 0
sumary = 0
for choice in r:
if choice[0] == i:
sumary += choice[1]
count += 1
if count!= 0:
final[i] = sumary/count
else:
final[i] = 0 j = list(final.items())
j.sort(key = lambda x:x[1],reverse=True) print(j)

100万次投掷结果

[(31, 83.82834638329605), (30, 79.52800049531004), (29, 76.17331441402108), (28, 71.87696804726407), (27, 68.18778308238463), (26, 64.67018198786748), (25, 60.67964184142264), (24, 56.45526274996125), (23, 52.392923563325276), (22, 48.68755592582308), (21, 44.58517213672044), (1, 44.5334890483851), (20, 40.74669140383426), (2, 39.63405063685342), (19, 37.418869140804865), (3, 35.294571004085675), (18, 33.83776818704008), (4, 31.641003948110548), (17, 31.04532411835488), (5, 28.63851921274602), (16, 28.615155057839036), (6, 26.1258323267986), (15, 25.99136919466403), (14, 24.509914748774317), (7, 24.21303671437461), (13, 23.11067443437519), (8, 22.75180413169387), (12, 22.04871418304534), (9, 21.76769120800572), (11, 21.743313360924084), (10, 21.466741230931742)]

用python计算最高投标限价的更多相关文章

  1. [转载] python 计算字符串长度

    本文转载自: http://www.sharejs.com/codes/python/4843 python 计算字符串长度,一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函 ...

  2. Python计算斗牛游戏的概率

    Python计算斗牛游戏的概率 过年回家,都会约上亲朋好友聚聚会,会上经常会打麻将,斗地主,斗牛.在这些游戏中,斗牛是最受欢迎的,因为可以很多人一起玩,而且没有技术含量,都是看运气(专业术语是概率). ...

  3. 利用Python计算π的值,并显示进度条

    利用Python计算π的值,并显示进度条  第一步:下载tqdm 第二步;编写代码 from math import * from tqdm import tqdm from time import ...

  4. 用Python计算幂的两种方法,非递归和递归法

    用Python计算幂的两种方法: #coding:utf-8 #计算幂的两种方法.py #1.常规方法利用函数 #不使用递归计算幂的方法 """ def power(x, ...

  5. Python计算分位数

    Python计算分位数    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/gdkyxy2013/article/details/80911514 ...

  6. python 计算校验和

    校验和是经常使用的,这里简单的列了一个针对按字节计算累加和的代码片段.其实,这种累加和的计算,将字节翻译为无符号整数和带符号整数,结果是一样的. 使用python计算校验和时记住做截断就可以了. 这里 ...

  7. 为了用python计算一个汉字的中心点,差点没绞尽脑汁活活累死

    为了用python计算一个汉字的中心点,差点没绞尽脑汁活活累死

  8. python计算时间差的方法

    本文实例讲述了python计算时间差的方法.分享给大家供大家参考.具体分析如下: 1.问题: 给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年? 2.解决方法: 标准模块date ...

  9. 用Python计算最长公共子序列和最长公共子串

    如何用Python计算最长公共子序列和最长公共子串 1. 什么是最长公共子序列?什么是最长公共子串? 1.1. 最长公共子序列(Longest-Common-Subsequences,LCS) 最长公 ...

随机推荐

  1. Spring 商品分类

    实体商品示例代码 package cn.maxhou.entity; import java.io.Serializable; import java.math.BigDecimal; import ...

  2. 解决 yolov3: Demo needs OpenCV for webcam images

    默认情况下yolo的Makefile文件有个配置OPENCV=0,你需要将它改成 0 ,然后重新make 编译make 编译就会启用 opencv,此时你需要在你的电脑上安装opencv 才可以 修改 ...

  3. OS计算题练习

    一.进程同步 1.设有两个进程P.Q,P的优先级高于Q,同时进入就绪队列.各自运行的程序段如下所示: 进程P 进程Q P1  Y=12 Q1  X=18 P2  Y=A+Y Q2  A=X+A P3 ...

  4. 我叫Tomcat:一款web服务器

    我叫Tomcat:一款web服务器 如何将我们的 Java 代码,运行在网络上,初学时,首先接触到的一般都是Servlet以及Jsp(或略过Jsp)而 Tomcat 就是这两者的容器,帮你处理动态网页 ...

  5. redis 实现登陆次数限制

    title: redis-login-limitation 利用 redis 实现登陆次数限制, 注解 + aop, 核心代码很简单. 基本思路 比如希望达到的要求是这样: 在 1min 内登陆异常次 ...

  6. 开启 oracle 的闪回功能

    查看是否开启闪回 SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ NO 查看是否配置了db_r ...

  7. 安全篇-AES/RSA加密机制

    在服务器与终端设备进行HTTP通讯时,常常会被网络抓包.反编译(Android APK反编译工具)等技术得到HTTP通讯接口地址和参数.为了确保信息的安全,我们采用AES+RSA组合的方式进行接口参数 ...

  8. vue-cookies的使用

    安装vue-cookies npm install vue-cookies --save 使用vue-cookies // 在main.js中 // require var Vue = require ...

  9. Apache2.4+Tomcat7.0+php5.5整合配置详解

    在上一篇的基础上,继续添加php的配置 一.首先下载php5.5 首先下载php5.5,到官网下载http://www.php.net/downloads.php,参考http://www.cnblo ...

  10. JDBC 复习3 存取Oracle大数据 clob blob

    1 目录结构记得导包咯 mysql oracle 2 代码,DBUtil工具类见前面的随笔博文 package dbex.mysql; import java.io.BufferedReader; i ...