[算法设计与分析]3.4.5特征根求解递推方程(粒子分裂)
2018-03-25 14:30
218 查看
反应堆有α和β两种粒子 每秒α分裂为3个β,β分裂为1个α和2个β t=0时刻只有一个α,求t时刻两种粒子个数
#include<stdio.h> #include<iostream> #include<math.h> using namespace std; void ParticleSplitting1(int t); void ParticleSplitting2(int t); int main () { int t = 3; ParticleSplitting1(t); ParticleSplitting2(t); } void ParticleSplitting1(int t) { int a[100], b[100];//代表α和β粒子 a[0] = 1; b[0] = 0; for(int i = 1; i <= t; i++) { a[i] = b[i - 1];//因此a[1]=0因为1s之后α粒子变成了3个β粒子 此时原α粒子消失 b[i] = 3 * a[i - 1] + 2 * b[i - 1];//当前时刻的β粒子是由前一时刻的α粒子和β粒子分裂而来的 } cout << t << "s之后" << "α粒子的个数是:" << a[t] << "\n\tβ粒子的数目是:" << b[t]; } //数学模型见书P116 void ParticleSplitting2(int t) {//等同于exp(n)等同于e^n int a = int(exp(t * log(3)));//log(x) 的作用就是ln(x) int b = int(exp((t + 1) * log(3))); if(t % 2) { a -= 3; b += 3; } else { a += 3; b -= 3; } a /= 4; b /= 4; cout << endl << t << "s之后" << "α粒子的个数是:" << a << "\n\tβ粒子的数目是:" << b; }
相关文章推荐
- 用递归法:设计算法求解汉诺塔问题,并编程实现。 (1) Hanoi(汉诺)塔问题分析 这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一个梵塔,塔内有3个座 A,B,C
- 计算机算法设计与分析作业01:分治法求解大数乘法+L型骨牌的棋盘覆盖问题
- 第六周算法分析与设计Ⅰ:Remove Nth Node From End of List
- 算法分析与设计-10- 最大子段和的动态规划算法
- Java实战应用视频教程之Java算法分析与设计
- 算法分析与设计——贪心法
- 致佳音: 推箱子游戏自动求解算法设计(二)
- [算法分析与设计] leetcode 每周一题: 126. Word Ladder II
- 算法分析与设计课程设计-Dijkstra最短路径算法
- 算法设计与分析之棋盘算法
- 【算法分析与设计】【第十七周】(NP完全问题)Ex8.19 KITE
- 算法分析与设计之五大常用算法 (II)—— 动态规划算法
- 算法分析与设计第十七周
- 【算法设计与分析】输油管道问题
- 一串首尾相连的珠子(m个),有N种颜色(N《=10),设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。并分析时间复杂度与空间复杂度。
- 算法分析与设计——LeetCode Problem.2 Add Two Numbers
- 【算法设计与分析】三个博弈论算法分析
- 算法分析与设计——LeetCode Problem.3 Longest Substring Without Repeating Characters
- 计算机算法分析设计第一课笔记
- 常用算法分析与设计