Programming 板


LINE

※ 引述《sunneo (艾斯寇德)》之铭言: : 我提供一下我会尝试的做法,首先我先产生31个大小的阵列,里面有数字0~30 : 以及一个back,为阵列最後一个元素的索引位置。 : 如果back为0 则回传0 : n = 产生乱数[ 1 , back ]; : 回传值 = 阵列[ n ]; : 对调(阵列[ n ] 跟阵列[ back ]); : --back; : 如果back为0,则清空阵列。 : 回传回传值; : 外面检查回传值是否为0,0表示座位已满。 : 这是在座位没有0号的情形。 : 有0号的话则以丢出exception的方式。 java我很久没写了 倒是用python写了一下 在class initialize的时候产生乱数阵列 每次Reserve只需回传乱数阵列里面index指到的元素 并且index--就好了 越到0就终止 -- #!/usr/bin/python import os import sys import random NUM_SEATS = 30 class Reservation: _num_seats = 0 _seat = [] _current_seat = 0 def __init__(self, num_seats): self._num_seats = num_seats def Init(self): for i in range(self._num_seats+1): self._seat.append(i) self.__RandomizeSeats(self._seat, self._num_seats) self._current_seat = self._num_seats def __RandomizeSeats(self, seats, num_seats): for i in range(num_seats, 0, -1): rand = random.randrange(1, i+1) seats[i],seats[rand] = seats[rand],seats[i] def Reserve(self): if self._current_seat: ret = self._seat[self._current_seat] self._current_seat -= 1 return ret else: return 0 def main(): r = Reservation(NUM_SEATS) r.Init() while 1: in_txt = raw_input("Reserve seat? [y/n] ") if in_txt=="y" or in_txt=="Y": seat_num = r.Reserve() if seat_num: print "Your seat number is %d" % seat_num else: print "Sorry, no more seats" return 0 else: print "Thanks for using reserve system" print "You reserved %d/%d seats" % \ (r._num_seats-r._current_seat, r._num_seats) return 0 if __name__ == "__main__": sys.exit(main()) -- http://nigel.twbbs.org --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 76.95.86.77
1F:推 joetsai:没学过python 有些部分看不太懂 =.="a 122.125.232.12 08/13 10:10
2F:→ joetsai:不过 很谢谢你~~~ 122.125.232.12 08/13 10:10







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP