2021美賽C題經驗分享
本科期間對數學建模一直挺感興趣,自認為在建模方面表現不錯,拿過國一、美一也算圓滿,

雖然2021年美賽沒有親自參賽,btw作一名熱心的學長(??)在家蹲的同時也不忘關注著這場燒腦大戰,
美賽已經過半了,目前寫了C題和F題,感徑訓行吧…
這里也想給學弟學妹們分享下思路啥的,如果感興趣也可私聊我,白嫖黨繞道~
C題思路
問題一是討論并討論這種有害生物在一段時間內的傳播是否可以預測以及其精確度如何?
我認為關鍵點是要設計大黃蜂的傳播模型以及模型的精確度,
構建一個元胞自動機模型,題目中提到大黃蜂一年內能夠在30公里范圍內筑巢,所以我們可以設定元胞自動機的迭代速度為一年30公里,所以我們可以構建10*10的地圖,每一單位為30公里,以任意三個黃蜂巢(美國華盛頓州農業資料官網得知三個,原本為4個,一個已經交配了,默認死亡)為中心,在規定時間內能夠傳播的范圍作為黃蜂傳播的預測(注意在元胞自動機中設定某一個有黃蜂的元胞附近八個位置新的黃蜂元胞的產生概率以及產生了新的元胞后,初始黃蜂元胞會因為交配后死亡)


貼一段自己搞的代碼
mport numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import random
bee_num=0
class CA(object):
def __init__(self, cells_shape):
"""
Parameters
----------
cells_shape : 一個元組,表示地圖的大小,
"""
# 矩陣的四周不參與運算
self.cells = np.zeros(cells_shape)
real_width = cells_shape[0] - 2
real_height = cells_shape[1] - 2
self.cells[random.randint(12,38),random.randint(12,38)]=1
self.cells[random.randint(12, 38), random.randint(2, 38)] = 1
self.cells[random.randint(12, 38), random.randint(2, 38)] = 1
self.cells[random.randint(12, 38), random.randint(2, 38)] = 1
#self.cells[1:-1, 1:-1] = np.random.randint(2, size=(real_width, real_height))
self.timer = 0
self.bee_count=0
self.list=[]
def update_state(self):
影像處理后面更
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/257841.html
標籤:其他
