【Linux】 Shell循环

article/2025/8/2 20:46:13

for循环遍历

在这里插入图片描述
在这里插入图片描述

{ }

在这里插入图片描述

在这里插入图片描述

C语言风格的for 遍历

在这里插入图片描述

while 循环

while test测试成立
do命令  
donewhile :   # 相当于while true 

在这里插入图片描述

until循环

与while 循环相反

until 循环
while test测试不成立
do命令
done

continue & break

在这里插入图片描述
在这里插入图片描述
嵌套的时候 if 要和 fi 在一起 do 要和done 在一起 (相邻最近)
在这里插入图片描述

九九乘法表 双层循环实现

#  echo -n 不换行输出
# echo -e 处理特殊字符
for a int {1..9}
dofor b int {1..9}do [ $b -le $a ] && echo -n "${b}*${a}=$((a*b))"done
done

在这里插入图片描述

使用循环处理命令行参数

shift :参数左移
在这里插入图片描述
vim多行注释 Shift + V 选择行数 且是第一个位置 然后 按Shift + i 输入 # 然后按俩次esc 即可

如果有help 参数 就 输出俩次
在这里插入图片描述

class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>= 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
};class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>= 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
};
class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>=class Solution {public:int lowbit(int n) {int an = 0;while(n) {if((n & 1) == 1) {an ++;}n >>= 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
}; 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
};1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
}; 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
}; 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
}; 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
}; 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
}; 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
}; 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
};1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
}; 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
}; 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
}; 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
}; 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
}; 1;}return an;}vector<int> countBits(int n) {vector<int> ans;for(int i = 0; i <= n; i ++) {ans.push_back(lowbit(i));}return ans;}
};

http://chatgpt.dhexx.cn/article/spq7iXW7.shtml

相关文章

二、马尔可夫决策过程与贝尔曼方程

这里写目录标题 1 马尔可夫性质2 马尔可夫过程3 马尔可夫奖励过程&#xff08;Markov reward process, MRP&#xff09;3.1 MRP的贝尔曼方程3.2 MRP的贝尔曼方程求解方法3.3 总结 4 马尔可夫决策过程&#xff08;Markov decision process, MDP&#xff09;4.1 MDP状态价值函数贝…

马尔可夫决策过程和贝尔曼方程

马尔可夫决策过程&#xff08;MDP)简介 下一个状态 S t 1 S_{t1} St1​是从概率分布P中得到的&#xff0c;该概率分布P取决于整个历史&#xff0c;因此我们需要考虑从 s 0 s_0 s0​开始到t时刻的状态。马尔可夫是具有马尔可夫性质的随机过程 定义 P [ S t 1 ∣ S t ] P [ …

贝尔曼方程(Bellman Equation)

贝尔曼方程&#xff08;Bellman Equation&#xff09;也被称作动态规划方程&#xff08;Dynamic Programming Equation&#xff09;&#xff0c;由理查贝尔曼&#xff08;Richard Bellman&#xff09;发现&#xff0c;由于其中运用了变分法思想&#xff0c;又被称之为现代变分法…

强化学习:贝尔曼方程(Bellman Equation)

∗ ∗ 重点&#xff1a;状态值、贝尔曼方程 ∗ ∗ **重点&#xff1a;状态值、贝尔曼方程** ∗∗重点&#xff1a;状态值、贝尔曼方程∗∗ return评估策略 在前面概念介绍中&#xff0c;我们知道了可以用 return 来评估一个策略的好坏。如图&#xff0c;有三个不同的策略&…

贝尔曼方程推导

马尔可夫的动态特性&#xff1a; 回报&#xff1a;&#xff08;两种定义&#xff09; 或 &#xff08;折扣率大于等于0小于等于1&#xff0c;折扣率决定了未来收益的现值&#xff09; 状态价值函数&#xff1a;从状态s开始&#xff0c;智能体按照策略π进行决策所获得回报的…

【机器学习】带你轻松理解什么是强化学习中的贝尔曼方程

系列文章目录 第十八章 Python 机器学习入门之强化学习 目录 系列文章目录 前言 一、什么是贝尔曼方程 二、贝尔曼方程为什么有用 三、贝尔曼方程是怎么来的 总结 前言 贝尔曼方程是强化学习中最重要的一个方程式。如果可以计算状态S 的状态动作函数 Q(s,a)&#xff0c…

强化学习/动态规划:贝尔曼方程的解读 Bellman Equation 贝尔曼方程组 / 贝尔曼最优方程

前言&#xff1a; 读书《Reinforcement Learning: An Introduction Second Edition》&#xff0c;读到第三章有限马尔科夫决策过程MDP中&#xff0c;提到了贝尔曼方程的理解。一开始我是有点懵逼的&#xff0c;现在看懂了其意思&#xff0c;在这里解释一下。 贝尔曼方程理解 下…

贝尔曼方程

贝尔曼方程在强化学习中无处不在&#xff0c;对于理解强化学习算法的工作原理是非常必要的。贝尔曼方程让我们可以开始解决MDPs问题。 贝尔曼期望方程 贝尔曼最优方程 将贝尔曼期望方程与贝尔曼最优方程进行对比&#xff0c;可以发现&#xff0c;贝尔曼期望方程是对于某一个给…

【RL】Bellman Equation 贝尔曼方程(动态规划)

参考&#xff1a;蘑菇书-《EasyRL》 本文只是为了方便自己今后的查阅对原文做出的一些概括。 马尔可夫奖励过程MRP 马尔可夫奖励过程是马尔可夫链加上奖励函数&#xff0c;奖励函数R是一个期望&#xff0c;表示到达某一个状态时可以获得多大的奖励。如果状态数是有限的&#x…

3.1 贝尔曼(bellman)方程

假设智能体观测到状态 s 0 s_0 s0​&#xff0c;并且有 N N N个可用action&#xff0c;每个action都会导致另一种状态&#xff0c;及相应的奖励。另外&#xff0c;假设我们知道与状态s0相连的所有状态的价值 V i V_i Vi​。在这种情况下&#xff0c;智能体可以采取的最佳行动是…

强化学习之贝尔曼方程

强化学习 强化学习注重智能体&#xff08;agent&#xff09;与环境之间的交互式学习&#xff1a; 强化学习的数据集不是训练初始阶段就有的&#xff0c;而是来自智能体与环境交互才能获得&#xff1b;强化学习不追求单步决策的最优策略&#xff0c;而是追求与环境交互获得的长…

强化学习笔记:策略评估--贝尔曼方程求解示例

目录 1. 前言 2. MDP模型 3. 求解贝尔曼方程 1. 前言 策略评估&#xff08;Policy Evaluation&#xff09;&#xff0c;简单来说&#xff0c;就是针对某个既定的策略求其状态值函数和动作值函数。求得了状态值函数和动作值函数&#xff0c;事实上就很容易进行不同候补策略之…

强化学习笔记:策略、值函数及贝尔曼方程

目录 1. 前言 2. 策略和值函数的定义 3. 值函数的估计 4. 状态值函数的贝尔曼方程 1. 前言 本篇介绍策略、两种值函数&#xff08;状态值函数和动作值函数&#xff09;&#xff0c;以及大名鼎鼎的贝尔曼方程。补充了一点关于贝尔曼方程的推导过程&#xff0c;希望能够帮助理…

贝尔曼最优方程(Bellman Optimality Equation)

贝尔曼最优方程 目录回顾 补充逻辑场景设置 贝尔曼最优方程最优策略与最优价值函数最优状态价值函数最优状态-动作价值函数 小小的题外话 - 最大值/期望值最大值和期望值之间的大小关系 最优策略与两种价值函数间的关系贝尔曼最优方程表达式 本节使用 更新图的方式对 V π ( …

价值函数与贝尔曼方程

一.价值函数 由于在面对不同的状态时&#xff0c;智能体需要选择最优的动作&#xff0c;到达更优的状态以得到更多的奖励.那么我们根据什么判别一个状态或动作的的好坏程度呢&#xff1f;我们引入价值函数。 价值函数的定义是&#xff1a;获得回报的期望。 1.状态价值函数 …

强化学习: 贝尔曼方程与马尔可夫决策过程

强化学习&#xff1a; 贝尔曼方程与马尔可夫决策过程 一、简介 贝尔曼方程和马尔可夫决策过程是强化学习非常重要的两个概念&#xff0c;大部分强化学习算法都是围绕这两个概念进行操作。尤其是贝尔曼方程&#xff0c;对以后理解蒙特卡洛搜索、时序差分算法以及深度强化学习算…

贝尔曼方程(Bellman Equation)的解读

这个算法只适用于没有变化的环境 在解释下面几个专业术语前 我先来说一下这个Agent&#xff0c;中文的意思是 代理&#xff0c;代理人 但是实际上他大概表示的意思就相当于变量&#xff0c;就给你某一个状态贴上了一个标签一样 **状态(State) &#xff1a;**用一个数值来作为…

贝尔曼方程讲解

网格世界示例如下&#xff1a; 贝尔曼方程 在这个网格世界示例中&#xff0c;一旦智能体选择一个动作&#xff0c; 它始终沿着所选方向移动&#xff08;而一般 MDP 则不同&#xff0c;智能体并非始终能够完全控制下个状态将是什么&#xff09; 可以确切地预测奖励&#xff08;…

Bellman 贝尔曼方程究竟是什么

贝尔曼方程是一种思想&#xff0c;而不是一个具体的公式 贝尔曼方程是由美国一位叫做理查德-贝尔曼科学家发现并提出的。 它的核心思想是&#xff1a;当我们在特定时间点和状态下去考虑下一步的决策&#xff0c;我们不仅仅要关注当前决策立即产生的Reward&#xff0c;同时也要…

(详细)强化学习--贝尔曼方程

原文链接&#xff1a;https://zhuanlan.zhihu.com/p/86525700 我有一个疑问&#xff0c;就是在推导过程中&#xff0c;状态s不是变量&#xff0c;st 是t阶段的状态相当于是一个常数&#xff0c;那么为什么sts&#xff0c;常数在等号的左边&#xff0c;变量在等号的右边&#x…