2020春招机考汇总1(Python):农场养鸡、连续子序列最大值的期望
生活随笔
收集整理的這篇文章主要介紹了
2020春招机考汇总1(Python):农场养鸡、连续子序列最大值的期望
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一題:農場養雞
n個農場,第i個農場有a[i]只雞,每天每個農場都會增加k只雞。每晚農場主都會選擇雞最多的農場,將該農場雞的個數除以2下取整,在m天后剩下多少只雞?
輸入:
第一行輸入三個int類型n,m,k(1 <= n,m,k <= 10^6)
第二行輸入n個正整數,表示n個養雞場初始雞的個數
輸出:
輸出雞的總數
示例:
輸入: 3 3 100 100 200 400 輸出: 925代碼如下:
import numpy as np import sysdef chicken(days, nums, k): # 編寫養雞函數for i in range(days): # 循環天數nums = [item+k for item in nums] # 每天每個籠子增加k只雞index = nums.index(np.max(nums)) # 找到雞數目最大的籠子nums[index] = nums[index]//2 # 雞數目減半,用整數除法return nums if __name__ == '__main__':line = sys.stdin.readline().split() # 獲取第一行輸入n = int(line[0]) # 分別存儲 n, m, km = int(line[1])k = int(line[2])nums = sys.stdin.readline().split() # 獲取第二行輸入,存儲初始各籠雞的數目nums = [int(item) for item in nums] # 數目變為整形nums = chicken(m, nums, k) # 調用養雞函數print(sum(nums)) # 輸出數目第二題:連續子序列最大值的期望
序列arr={a1,a2,…,an}的所有連續子序列最大值的期望是多少?(結果保留小數點后6位有效數字)
注意是連續子序列,序列是有原列表中連續的元素組成,這樣難度降低。
示例:
Python 代碼示例:
import sysdef max_num(n, nums): # 求得包含各個子序列最大值出現次數的字典num_dict = {}for i in range(n): # 兩層循環,用來劃分連續子序列for j in range(i, n):max_value = max(nums[i:j+1]) # 求子序列最大值if max_value in num_dict.keys(): # 添加進字典num_dict[max_value] += 1else:num_dict[max_value] = 1return num_dictif __name__ == '__main__':n = int(sys.stdin.readline()) # 獲取整數型數列長度nums = sys.stdin.readline().split()nums = [int(item) for item in nums] # 獲取序列,并將值轉化為整型num_dict = max_num(n, nums) # 調用函數,求得包含各個子序列最大值出現次數的字典res = 0key_num = 0for key, value in num_dict.items(): # 求解最終結果res += key*value # 最大值之和key_num += value # 最大值個數print('{:.6f}'.format(res/key_num)) # 最大值期望總結
以上是生活随笔為你收集整理的2020春招机考汇总1(Python):农场养鸡、连续子序列最大值的期望的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌称搜索进入对话式人工智能功能新纪元
- 下一篇: MIUI 14开发者预览版上线:小米13