如何创建底数递增、指数递减的幂分量向量?
解决方案
规律拆解
先明确序列的核心规律:
- 底数:从0.1开始,以公比2的几何级数增长,其中0.1、204.8、409.6各出现1次,中间的0.2、0.4、...、102.4每个出现2次
- 指数:从36开始,按「减2→减1」的循环递减,直到最后一步从3减2到1结束
Python代码实现
# 生成指数序列 exponents = [] current_exp = 36 while current_exp >= 1: exponents.append(current_exp) # 处理最后一步:3→1 if current_exp == 3: current_exp -= 2 exponents.append(current_exp) break # 按「减2→减1」循环生成 current_exp -= 2 exponents.append(current_exp) current_exp -= 1 # 生成底数序列 bases = [] current_base = 0.1 # 定义每个底数的重复次数:0.1(1次) → 0.2~102.4(各2次) →204.8(1次)→409.6(1次) repeat_counts = [1] + [2]*10 + [1, 1] for cnt in repeat_counts: bases.extend([current_base]*cnt) current_base *= 2 # 生成目标向量 target_vector = [base ** exp for base, exp in zip(bases, exponents)] # 可选:打印前5个元素验证 print(target_vector[:5])
代码说明
- 指数生成:通过循环按「减2→减1」的规则构建序列,单独处理最后一步从3到1的递减逻辑
- 底数生成:结合几何级数增长规则,按预设的重复次数列表生成对应底数序列
- 向量生成:通过
zip配对底数与指数,逐元素计算幂次得到最终目标向量
内容的提问来源于stack exchange,提问作者Petros Xristodoulou
相关产品推荐
相关产品推荐

