import pandas as pd
import math

# 读取Excel文件
data = pd.read_excel(r'D:\pythonProject3\会员信息\附件二:会员信息数据.xlsx')

# 获取商品和会员的位置信息
goods_latitude = data['商品GPS纬度']
goods_longitude = data['商品GPS经度']
member_latitude = data['会员GPS纬度']
member_longitude = data['会员GPS经度']

# 获取任务限额和商品价格
task_limit = data['预订任务限额']
goods_price = data['任务标价']

# 初始化最小引力子和对应的常量
min_gravity = float('inf')
min_k = 0
min_n = 0
min_m = 0

# 遍历每一行数据
for i in range(len(data)):
    # 计算商品和会员的距离
distance = math.sqrt((goods_latitude[i] - member_latitude[i])**2 + (goods_longitude[i] - member_longitude[i])**2)
    
    # 计算引力子
gravity = (goods_price[i] * (task_limit[i]**min_m)) / (distance**min_n)
    
    # 更新最小引力子和对应的常量
    if gravity < min_gravity:
        min_gravity = gravity
        min_k = goods_price[i]
        min_n = distance
        min_m = task_limit[i]

# 输出带常量的公式
print(f'y = ({min_k}*q1*({min_m}^m)) / (r^{min_n})')

# 输出最小引力子的值
print(f'最小引力子y的值为: {min_gravity}')

代码说明:

  1. 读取Excel文件: 使用 pd.read_excel() 函数读取Excel文件,并将数据存储在 data 变量中。
  2. 获取数据:data 中提取商品和会员的位置信息(经纬度)、任务限额和商品价格。
  3. 初始化变量: 初始化最小引力子 min_gravity 为无穷大,其他常量 min_k, min_n, min_m 初始化为 0。
  4. 遍历数据: 使用 for 循环遍历每一行数据。
  5. 计算距离: 使用 math.sqrt() 函数计算商品和会员之间的距离。
  6. 计算引力子: 根据公式 y = (k * q1 * (q2^m)) / (r^n) 计算引力子 gravity
  7. 更新最小引力子: 如果当前计算的 gravity 小于 min_gravity,则更新 min_gravity 和对应的常量 min_k, min_n, min_m
  8. 输出公式: 打印带有常量的公式。
  9. 输出最小引力子: 打印最小引力子的值。

代码中变量的英文定义:

  • data: 包含所有数据信息的 Pandas DataFrame
  • goods_latitude: 商品的纬度信息
  • goods_longitude: 商品的经度信息
  • member_latitude: 会员的纬度信息
  • member_longitude: 会员的经度信息
  • task_limit: 任务限额
  • goods_price: 商品价格
  • min_gravity: 最小引力子
  • min_k: 常量 k
  • min_n: 常量 n
  • min_m: 常量 m
  • i: 循环变量
  • distance: 商品和会员之间的距离
  • gravity: 引力子
  • q1: 商品价格
  • q2: 任务限额
  • r: 商品和会员之间的距离
  • y: 引力子
  • k: 常量 k
  • n: 常量 n
  • m: 常量 m

原文地址: https://www.cveoy.top/t/topic/fAbp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录