代码拉取完成,页面将自动刷新
同步操作将从 Julia语言程序设计/bookexamples 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# 某个人的身高、体重、BMI指数及BMI分类编号
mutable struct Person
height # 身高,单位米
weight # 体重,单位千克
bmi # 计算得到的BMI指数
class # 根据BMI指数计算得到的分类标识
# 1-体重过低,2-正常范围,3-肥胖前期,4-I度肥胖,5-II度肥胖,6-III度肥胖
end
# 定义一个集合结构,记录1000个人的样本
people = Set{Person}()
# 使用均匀分布生成1000个体型样本数据,并放在集合people中
for i = 1:1000
h = rand() * (1.8-1.5)+1.5 # 生成身高数据,并将其映射到[1.5, 1.8)区间
w = rand() * (100-30)+30 # 生成体重数据,并将其映射到[30, 100)区间
p = Person(h, w, 0, 0) # 基于身高与体重数据创建Person对象p,BMI指数和分类编号均初始化为无效的0值
push!(people, p) # 将对象放入集合people中
end
# 对BMI指数进行分类
# 1-体重过低,2-正常范围,3-肥胖前期,4-I度肥胖,5-II度肥胖,6-III度肥胖
function bmi_category(index::Float64)
class = 0
if index < 18.5
class = 1
elseif index < 24
class = 2
elseif index < 28
class = 3
elseif index < 30
class = 4
elseif index < 40
class = 5
else
class = 6
end
class # 返回分类编号
end
# 计算BMI指数并计算分类编号
function bmi(p::Person)
p.bmi = p.weight/(p.height^2)
p.class = bmi_category(p.bmi)
end
# 对1000个样本执行BMI计算,并统计分布
categories = Dict()
for p ∈ people
bmi(p)
categories[p.class] = get(categories, p.class, 0) + 1
end
# 直接列出变量名以打印其内容
categories
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。