最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)抽獎小程序

 更新時間:2020年04月15日 15:08:55   作者:guoxuequan  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)抽獎小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了python實(shí)現(xiàn)抽獎小程序的具體代碼,供大家參考,具體內(nèi)容如下

設(shè)計(jì)一個抽獎服務(wù) 

背景:有x個獎品,要求在y天內(nèi)發(fā)完;每天至少發(fā)放z個獎品;每天抽獎人數(shù)不定,事先會假設(shè)一個范圍是m-n

舉例:有100個獎品,要求5天內(nèi)發(fā)完,每天至少發(fā)15個獎品;每天來抽獎的人估計(jì)是 2000-3000 人,希望獎品能夠比較均勻,但隨機(jī)的抽取出來。

接口要求:服務(wù)監(jiān)聽一個端口,測試程序不斷連接,發(fā)送一個數(shù)字代表是第幾天,比如第1-2000個請求發(fā)送1(模擬第一天來了2000人),第2001到5000請求發(fā)送2(模擬第二天來了3000人)... 服務(wù)返回 0 or 1 表示是否抽到獎品

client.py:設(shè)置初始化參數(shù),模擬用戶向server端發(fā)送數(shù)據(jù)

# -*- coding: utf-8 -*-
import socket
import random

address = ('127.0.0.1', 31500)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

x = int(input("獎品個數(shù)x:"))
y = int(input("發(fā)放天數(shù)y:"))
z = int(input("每天至少發(fā)放獎品個數(shù):"))
m = int(input("最少人數(shù)m:"))
n = int(input("最多人數(shù)n:"))

data = '{"x":'+str(x)+',"y":+'+str(y)+',"z":'+str(z)+',"m":'+str(m)+',"n":'+str(n)+'}'
s.sendto(data.encode('utf-8'), address)

for day in range(y):
 num = random.randint(m, n)
 print("第",day+1,"天人數(shù)為",num)
 k=0
 for k in range(num):
 s.sendto(str(day+1).encode('utf-8'), address)
s.close()

server.py:服務(wù)端接收初始數(shù)據(jù)和每個用戶發(fā)送的數(shù)據(jù)

# -*- coding: utf-8 -*-

import socket
import lottery

address = ('127.0.0.1', 31500)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(address)

list=[]

data, addr = s.recvfrom(2048)
data = data.decode('utf-8')
print ("received:", data, "from", addr)
dic=eval(data)
x=dic['x']
y=dic['y']
z=dic['z']
m=dic['m']
n=dic['n']

k=0
preday = 1
while True:
 k += 1
 day, addr = s.recvfrom(2048)
 if not day:
 print ("client has exist")
 break
 if preday != day:
 list.append(k-1)
 preday = day
 day = int(day.decode('utf-8'))
 x -= lottery.check(x,y,z,m,n,k,day,list)
s.close()

lottery.py:抽獎程序算法

#Filename:lottery.py

def check(x,y,z,m,n,k,day,list):

 #估計(jì)到來當(dāng)天的人數(shù)和獎品的個數(shù)
 if day == 1 or day == y:
 e_x = z
 e_people = n
 elif day == y:
 e_x = x
 e_people = n
 else:
 e_x = x/(y+1-day)
 e_people = sum(list)/len(list)
 
 #中獎間隔
 length = int(e_people/e_x)

 lucky = 0
 if x>0 and k%length == 0 :
 #print(x,"第",k,"個中獎")
 lucky = 1

 print("第",k,"個--第",day,"天--是否中獎--",lucky)
 return lucky

源碼下載:python實(shí)現(xiàn)抽獎小程序

想要學(xué)習(xí)更多關(guān)于抽獎功能的實(shí)現(xiàn),請參考此專題:抽獎功能

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 將Python代碼打包成可調(diào)用SDK的四種方法小結(jié)(適用于移動端 App)

    將Python代碼打包成可調(diào)用SDK的四種方法小結(jié)(適用于移動端 App)

    Python是一門功能強(qiáng)大、生態(tài)豐富的語言,廣泛用于數(shù)據(jù)處理、機(jī)器學(xué)習(xí)和后端服務(wù),然而,Python并不是原生的移動端開發(fā)語言,如果希望在移動端App中調(diào)用Python代碼,最好的方式是將Python代碼打包成SDK,所以本文給大家介紹了幾種Python代碼打包成可調(diào)用SDK的方法
    2025-04-04
  • Python采集電影評論實(shí)戰(zhàn)示例

    Python采集電影評論實(shí)戰(zhàn)示例

    這篇文章主要為大家介紹了Python采集電影評論實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • python將一組數(shù)分成每3個一組的實(shí)例

    python將一組數(shù)分成每3個一組的實(shí)例

    今天小編就為大家分享一篇python將一組數(shù)分成每3個一組的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python 防止死鎖的方法

    Python 防止死鎖的方法

    這篇文章主要介紹了Python 防止死鎖的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Python詳細(xì)介紹模型封裝部署流程

    Python詳細(xì)介紹模型封裝部署流程

    本文實(shí)例講述了Python模型封裝部署的原理與實(shí)現(xiàn)方法。封裝即是隱藏對象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對外提供公共訪問方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • python中itertools模塊使用小結(jié)

    python中itertools模塊使用小結(jié)

    itertools 是python的迭代器模塊,itertools提供的生成迭代器的函數(shù),相當(dāng)高效且節(jié)省內(nèi)存。使用這些工具,你將能夠創(chuàng)建自己定制的迭代器用于高效率的循環(huán)。接下來通過本文給大家介紹python中itertools模塊使用,感興趣的朋友一起看看吧
    2021-11-11
  • 基于Python實(shí)現(xiàn)將列表數(shù)據(jù)生成折線圖

    基于Python實(shí)現(xiàn)將列表數(shù)據(jù)生成折線圖

    這篇文章主要介紹了如何利用Python中的pandas庫和matplotlib庫,實(shí)現(xiàn)將列表數(shù)據(jù)生成折線圖,文中的示例代碼簡潔易懂,需要的可以參考一下
    2022-03-03
  • Python詳解argparse參數(shù)模塊之命令行參數(shù)

    Python詳解argparse參數(shù)模塊之命令行參數(shù)

    這篇文章主要介紹了Python詳解argparse參數(shù)模塊之命令行參數(shù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考下面文章詳解
    2022-07-07
  • Python如何省略括號方法詳解

    Python如何省略括號方法詳解

    這篇文章主要介紹了Python如何省略括號方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Python中的3D繪圖命令總結(jié)

    Python中的3D繪圖命令總結(jié)

    很多情況下,為了能夠觀察到數(shù)據(jù)之間的內(nèi)部的關(guān)系,可以使用繪圖來更好的顯示規(guī)律。而Python的matplotlib庫中有很多三維圖表顯示的命令,本文為大家做了一個總結(jié),需要的可以參考一下
    2022-02-02

最新評論

长治市| 延长县| 阿克苏市| 叙永县| 民乐县| 定西市| 元朗区| 古交市| 建昌县| 漾濞| 宝坻区| 彰化县| 安顺市| 广宗县| 金平| 湛江市| 太湖县| 宜兰市| 荥经县| 盈江县| 永清县| 仁寿县| 鄂托克前旗| 隆昌县| 锡林郭勒盟| 丹凤县| 沭阳县| 富平县| 五寨县| 新化县| 庆阳市| 张家港市| 苏州市| 阳西县| 甘德县| 长岭县| 壤塘县| 高雄市| 阳高县| 文成县| 通城县|