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

最高投标限价下浮率在开标前在开标现场采取逐标段摇珠方式确定,摇珠操作办法如下:在下浮率摇珠范围内,以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. web系统整体优化

    关于web系统整体优化提速总结   关于web系统整体优化提速总结 一.背景 随着公司业务的拓展,随之而来就是各种系统横向和纵向的增加,PV.UV也都随之增加,原有的系统架构和模式慢慢遇上了瓶颈,需要 ...

  2. Rhino脚本引擎技术介绍

    引用:http://p.primeton.com/articles/54c1e255be20aa4735000001 http://blog.csdn.net/u013292493/article/d ...

  3. Google 安装 Elasticsearch-head 插件

    下载插件:https://github.com/liufengji/es-head 安装插件: google --->更多工具---->扩展程序 将解压的elasticsearch-hea ...

  4. 【转帖】一文看懂docker容器技术架构及其中的各个模块

    一文看懂docker容器技术架构及其中的各个模块 原创 波波说运维 2019-09-29 00:01:00 https://www.toutiao.com/a6740234030798602763/ ...

  5. pgsql常用操作

    pgsql备份: --进入pgsql容器docker exec -it 容器ID bash --备份pgsql /opt/rh/rh-postgresql95/root/usr/bin/pg_dump ...

  6. WUST 设计模式 实验一 单例模式的应用

    实验一 单例模式的应用 实验目的 1.掌握单例模式(Singleton)的特点: 2.分析具体问题,使用单例模式进行设计. 实验内容和要求 很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的 ...

  7. Python之对象持久化笔记

    pickle 序列化为字符串 .dumps(obj): 将对象序列为字符串 .loads(s): 从字符串反序列化对象 例如 import pickle person = {'name': 'Tom' ...

  8. poj 3617 弱鸡贪心

    比赛的时候扣了一道贪心的题目,不会写,,现在补一补一些基础的贪心. 题意:给定一个字符串s,要求按下列操作生成一个新串t--每次从s串中的最前和最后取一个字符给t,要求生成的t字典序最小. 题解:由于 ...

  9. office2016激活码 最新各个版本 激活

    office2016专业版激活密钥 Microsoft Office 2016 Pro Plus Retail 零售版序列号密钥: BHXN7-MQB36-MTHQ4-8MHKV-CYT97 Micr ...

  10. React实现顶部固定滑动式导航栏(导航条下拉一定像素时显示原导航栏样式)

    摘要 基于react的框架开发一个顶部固定滑动式的酷炫导航栏,当导航栏置顶时,导航栏沉浸在背景图片里:当鼠标滑动滚轮时,导航栏固定滑动并展示下拉样式. JS部分 相关技术栈:react.antd.re ...