BNU-FZH

fengzhenhua@outlook.com

工作和学习中编写PPT是一件很平常的事情,但是做的多了就需要提高效率。目前网络上的AI生成PPT的工具有很多,但是大多需要注册或者有使用次数限制,这非常不方便。本文隆重介绍一个永久免费的,免注册的工具。点击官网直接进入:

https://aippt.antdanceai.com

官方的介绍:

adAI 艾达艾ai一键生成ppt工具,是adAI 艾达艾旗下一个通过ai能力,一键全自动生成图文信息的ppt工具。adAI 艾达艾ai ppt工具,可以在2分钟内,根据用户输入的对ppt制作的要求,一键生成精美页面的ppt文字内容和针对性配图。

adAI 艾达艾ai一键生成ppt工具,通过针对数十万种ppt生成格式的训练,用户只需要通过简洁清晰描述需求,即可转化为高质量的ppt文字结构的内容。并且通过针对每页的ppt标题,智能理解标题语义并根据语义,智能匹配对应的配图。实现了一键自动化生成图文并茂的ppt。并且支持一键免费下载生成的ppt。如果对生成的ppt需要进行编辑和调整,只需要通过wps 或PowerPoint打开后即可编辑。

adAI 艾达艾ai ppt还创新的采用了新的商业模式。对于用户而言,这是一个真正免费的 ,并且免注册登录的,也无需科学上网即可使用的ai ppt生成工具。只是在生成的ppt最后一页带有 广告。用户可以随时删除。这个广告是通过adAI 艾达艾的千人千面ai算法实现基于用户输入的ppt提示词智能匹配的。比如用户输入如果策划一场车展,那么匹配的广告会跟:车、展会、策划相关。做到精准广告匹配。

adAI 艾达艾人工智能科技有限公司,致力于通过ai重构传统营销模式,除了ai ppt工具以外,还提供基于 ai的全自动内容营销服务。

根据Next主题官方文档Math Equation配置好Hexo对数学公式的支持,对于一些小问题可以写成LaTeX记录在博客中。但是这里面遇到的问题是,MarkDown毕竟不是针对LaTeX设计的,所以一些特殊的宏包在博客中是不能使用的,对于一些特殊复杂的公式需要撰写tex文件编译,而不是发表在博客上。对于一些简单的公式,如果在Hexo博客上编写,应当注意使用原始的LaTeX命令,以增强其兼容性,对于一些数学符号的输入,请参考:关于LaTeX公式编辑 Introduce, 而对于Hexo支持的数学公式格式,为了方便使用,直接引用其官方的例子。

支持的数学公式

Hexo中开启数学支持,有两种插件支持,其中MathJax依赖JavaScript,但其支持的数学公式更多,而KaTeX不依赖JavaScript, 同时速度更快,但是其持的数学公式少一些,因些根据Next主题官方,推荐使用MathJax.它们支持的TeX/LaTeX命令参考:

Simple Equations

For simple equations, use the following form to give a tag,

1
2
3
$$\begin{equation} \label{eq1}
e=mc^2
\end{equation}$$

\[\begin{equation} \label{eq1} e=mc^2 \end{equation}\]

Then, you can refer to this equation in your text easily by using something like:

1
The famous matter-energy equation $\eqref{eq1}$ proposed by Einstein...

The famous matter-energy equation \(\eqref{eq1}\) proposed by Einstein...

Multi-line Equations

For multi-line equations, inside the equation environment, you can use the aligned environment to split it into multiple lines:

1
2
3
4
5
6
7
$$\begin{equation} \label{eq2}
\begin{aligned}
a &= b + c \\
&= d + e + f + g \\
&= h + i
\end{aligned}
\end{equation}$$

\[\begin{equation} \label{eq2} \begin{aligned} a &= b + c \\ &= d + e + f + g \\ &= h + i \end{aligned} \end{equation}\]

1
Equation $\eqref{eq2}$ is a multi-line equation.

Equation \(\eqref{eq2}\) is a multi-line equation.

Multiple Aligned Equations

We can use align environment to align multiple equations. Each of these equations will get its own numbers.

1
2
3
4
5
$$\begin{align}
a &= b + c \label{eq3} \\
x &= yz \label{eq4} \\
l &= m - n \label{eq5}
\end{align}$$

\[\begin{align} a &= b + c \label{eq3} \\ x &= yz \label{eq4} \\ l &= m - n \label{eq5} \end{align}\]

1
There are three aligned equations: equation $\eqref{eq3}$, equation $\eqref{eq4}$ and equation $\eqref{eq5}$.

There are three aligned equations: equation \(\eqref{eq3}\), equation \(\eqref{eq4}\) and equation \(\eqref{eq5}\).

Since align in and of itself is a complete equation environment (read here about the difference between aligned and align in LaTeX). You do not need to wrap it with equation environment.

Exclude Equations from Numbering

In the align environment, if you do not want to number one or some equations, just use \nonumber right behind these equations. Like the following:

1
2
3
4
5
$$\begin{align}
-4 + 5x &= 2 + y \nonumber \\
w + 2 &= -1 + w \\
ab &= cb
\end{align}$$

\[\begin{align} -4 + 5x &= 2 + y \nonumber \\ w + 2 &= -1 + w \\ ab &= cb \end{align}\]

Use \tag to Tag Equations

Sometimes, you want to use more «exotic» style to refer your equation. You can use \tag{} to achieve this. For example:

1
$$x+1\over\sqrt{1-x^2} \tag{i}\label{eq_tag}$$

\[x+1\over\sqrt{1-x^2} \tag{i}\label{eq_tag}\]

1
Equation $\eqref{eq_tag}$ use `\tag{}` instead of automatic numbering.

Equation \(\eqref{eq_tag}\) use \tag{} instead of automatic numbering.

二项分布和泊松分布的表达式

  • 二项分布: \[ P(x=k)=C_n^kp^k(1-p)^{n-k}\]

  • 泊松分布: \[P(x=k)=\frac{\lambda^k}{k!}e^{-\lambda}\]

一个现实生活中的例子

一条汽车单向行驶的公路边有个便利店,店家经过一周的统计,得到数据:上个周一共有100辆次的车从这个便利店通过,其中有5辆次的车来买了东西。那么,店家现在想用这个数据来推测,下周,有6辆次的车会在这个便利店买东西的概率是多少?

现在,假设我们只知道二项分布而对泊松分布一无所知,我们如何通过构建二项分布的数学模型来解决这个问题呢?

这是二项分布的经典场景。对于通过的每一辆车,它只有两种可能的观测结果,那就是买东西和不买东西。这是一个 0-1 分布。现在我们做一个假设,假设每辆车通过时停下来买东西的概率是一样的(这样做假设不会影响整体的推测,因为做统计时,我们只统计了通过的车的总辆次和停下来买东西的车的总次数,也就是说做统计时每辆车是没有区别的)。通过买东西的车的总辆次 / 通过的车的总辆次,我们能得到每一辆车的 0-1 分布,任意一辆车停下来买东西的概率 P 为: \(\frac{5}{100}=0.05\)

行为 买东西 不买东西
P 0.05 0.95

现在,我们已经通过对之前统计的数据的分析,知道了任意一辆车通过时停下来买东西的概率。如何通过这个0-1分布来做预测?那就做独立重复实验(也就是伯努利试验),假设有 n 辆车在下个周通过该路口,每辆车停下来买东西的概率都是 p,则有 k 辆车到商店买东西的概率为:

\[P(x=k)=C_n^kp^k(1-p)^{n-k}\]

为此,我们必须颇为无奈地对下个周通过这条路的车的总辆次做个假设,那就是也通过100辆。现在我们就能做预测啦!

\[P(x=6)=C_{100}^{6}\times-.005^6\times(1-0.05)^{100-6}\approx0.15\]

如果以时间为维度来考量,二项分布就会出问题

上一种通过二项分布来做预测的方法,依赖于我们需要做一个假设,即下一个周通过这条路的车的总辆次是100辆。现在我们想绕过需要对总辆次做假设这一障碍,用时间来作为观察的基准。但是因为二项分布所对应的伯努利实验的每一次实验是零散的,所以不得不将连续的时间进行分割。这就要涉及到单位时间,我们不妨把单位时间设置成小时,\(1周=7\times24=168小时\)。根据之前的观察,一共有 5 辆车次的车去到商店买东西,也就是说,每小时有车进商店买东西的概率为 \(P=\frac{5}{168}\approx 0.02976\)。好像,我们又可以像上面那样去建立一个关于单位时间的0-1分布了。但是其实这个模型缺陷就出来了,由于考察的对象是单位时间,它的结果不再只有两个,即该时间段进入商店买东西的车的数量除了01,还可能是2、3、4、…,所以其实用0-1分布来对单位时间进入商店的车的数量进行模拟是不太科学的。

那怎么办呢?自然而然,会想到将单位时间继续分割为更小的单位时间,如果把小时分割为分钟,那每小时就可以做60次独立重复实验,也就是说这下每小时最多可以有60辆车进入商店买东西了。但是这样仍然不满足时间这个连续的度量,要是出现极端情况,每小时有70辆车进入商店呢,这个模型又没法满足了。自然而然,我们想到将时间无限的分割下去。在非常非常小的一段时间里,我们就能做0-1分布的假设了,即在这段时间里只有 01 辆车进入商店买东西。但是无限的分割时间之后,我们还怎么计算这个无穷小的单位时间里车进入商店的概率呢?答案是,根本就不用去计算。因为我们的观测量是一个周汽车进入商店的辆次的总数,不妨把它记为 \(\lambda\),它满足下面的等式:

\[ \lambda = np \]

其中 n 为将一周的时间无限分割成的无穷小的单位时间的总份数,而 p 是分割成这么多份数之后,根据观测值 \(\lambda\) 所计算出来的该单位时间里有车辆进入商店的概率。

从二项式公式推导泊松公式

\[\begin{equation}\label{eq:poisson} \begin{aligned} P(X=k)&=\lim_{n\to\infty} C_n^kp^k(1-p)^{n-k} \\ &= \lim_{n\to\infty} C_n^k(\frac{\lambda}{n})^k(1-\frac{\lambda}{n})^{n-k}\\ &=\lim_{n\to\infty} \frac{n\times(n-1)\times\cdots\times(n-k+1)}{k!}(\frac{\lambda}{n})^k(1-\frac{\lambda}{n})^n(1-\frac{\lambda}{n})^{-k}\\ &=\lim_{n\to\infty} \frac{n\times(n-1)\times\cdots\times(n-k+1)}{k!}\frac{\lambda^k}{n^k}(1-\frac{\lambda}{n})^{-k}(1-\frac{\lambda}{n})^{n}\\ &=1\times\frac{\lambda^k}{k!}\times 1\times e^{-\lambda}\\ &=\frac{\lambda^k}{k!}e^{-\lambda} \end{aligned} \end{equation}\]

推导之后我们发现,其实根本不需要用到 np 这两个数据,而只有观测值 \(\lambda\)。到这里是不是觉得泊松大大干了一件非常有价值的事情!

通过泊松分布来对这个问题进行预测

根据之前的统计, \(\lambda = 5\) \[P(X=6) = \frac{5^6}{6!}e^{-5} \approx 0.1462\]

总结

根据二项分布推导出了泊松分布,并不代表二项分布就没有泊松分布先进,只是对于解决连续时间的这种问题,显然泊松分布更好用。但是有些情况下,二项分布会更好用。

声明

本文引用自:如何深刻理解从二项式分布到泊松分布, 只是对数学公式部分重新编写以适应Next主题。

As you know, the transition to Wayland from the traditional Xorg server in the Linux ecosystem has been a hot topic that caused much controversy and, admittedly, a fair share of troubleshooting.

While Wayland promises a more streamlined and secure interface than its predecessor, Xorg, users have often encountered hurdles, particularly regarding compatibility with NVIDIA graphics cards.

In other words, the journey hasn’t always been without bumps, from rendering issues to compatibility quirks. However, it’s becoming increasingly clear that the NVIDIA and Wayland combo, while not yet a perfect match, is evolving into a viable, working solution for many.

Still, with the proper guidance and a bit of patience, using NVIDIA with Wayland on Arch is not just a possibility but a largely workable solution. You can approach this transition with confidence.

This guide is designed to do precisely this: usher you through the setup process and offer solutions to ensure you can take most of your NVIDIA and Wayland experience on Arch Linux. So, let’s get started.

1、Install NVIDIA Driver

1
sudo pacman -S nvidia nvidia-settings

2、Set Environment Variables

With NVIDIA’s introduction of GBM (Generic Buffer Management) support, a crucial component of the Linux graphics stack that provides an API for allocating buffers for graphics rendering and display, many compositors have adopted it as their default. So, to force GBM as a backend, we need to set some environment variables.

Open the “/etc/environment” file, paste the following two lines, then save the file and exit.

/etc/environment
1
2
GBM_BACKEND=nvidia-drm
__GLX_VENDOR_LIBRARY_NAME=nvidia

Set environment variables.

3、Loading the NVIDIA Modules at System Boot

To ensure that the NVIDIA modules are loaded at the earliest possible stage, i.e., on the system boot, we need to add the ‘nvidia,’ ‘nvidia_modeset,’ ‘nvidia_uvm,’ and ‘nvidia_drm‘ modules to the initramfs – a temporary root file system loaded into memory as part of the boot process before the real root file system is mounted.

This is possible by entering them in the “MODULES” section of the “/etc/mkinitcpio.conf” file. This is a configuration file for mkinitcpio, a tool Arch uses to generate initial ramdisk images.

So, open the “/etc/mkinitcpio.conf” file. Then, enter the modules mentioned above, as the final version should look like this:

/etc/mkinitcpio.conf
1
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)

Loading the NVIDIA modules at system boot.

Great, but we’re not done with this file yet. Scroll down and remove the “kms” from the “HOOKS” section. This ensures that the initramfs will avoid including the open-source “nouveau” driver to mess with the work of the proprietary NVIDIA one we have installed and rely on.

Removing KMS from the Hooks.

We’ve finished modifying “/etc/mkinitcpio.conf“. Save your changes and close the file. Next, we’ll proceed to regenerate the initramfs. To do this, execute the following command:

1
sudo mkinitcpio -P

In the command’s output, you might notice messages like “WARNING: Possibly missing firmware for module…” These shouldn’t cause concern and are unrelated to the modifications we are currently implementing.

4、Enable DRM

DRM (Direct Rendering Manager) is a subsystem of the Linux kernel responsible for interfacing with GPUs. It provides a framework for graphics drivers to enable direct access to the graphics hardware, which is crucial for performance in rendering tasks, 3D graphics, video playback, and more.

NVIDIA provides proprietary graphics drivers for Linux that use the DRM subsystem to interact with their GPUs. These drivers are essential for getting the best performance and feature support on NVIDIA hardware under Linux.

Enabling the DRM kernel mode setting is required for Wayland compositors to function properly. So, we will pass it as a parameter to the Linux kernel during its initial boot through the GRUB bootloader.

Open its configuration file/etc/default/grub. Locate the line that begins with “GRUB_CMDLINE_LINUX_DEFAULT” and append “nvidia-drm.modeset=1” to its end. The completed line should resemble the example provided below.

Enabling DRM (Direct Rendering Manager) via GRUB.

Finally, regenerate the GRUB configuration by running:

1
sudo grub-mkconfig -o /boot/grub/grub.cfg

Regenerating the main GRUB configuration file.

5、Testing Wayland with NVIDIA on Arch Linux

You are all set up. Now, reboot your Arch system. At the login screen of the display manager you’re using, choose the Wayland Session option.

Switching to Wayland session on Arch.

Log in and enjoy a seamless Wayland experience with NVIDIA and your beloved Arch Linux.

Arch Linux is running on Wayland with NVIDIA GPU.

In addition, to verify that the NVIDIA DRM settings were correctly applied after a reboot, execute the following command; in response, you should get “Y.”

1
sudo cat /sys/module/nvidia_drm/parameters/modeset

Verifying the NVIDIA DRM settings.

6、设置 nvidia 电源管理

  1. Create a file /etc/modprobe.d/nvidia-power-management.conf with the following content:

    1
    options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/tmp

  2. sudo update-initramfs -c -k all to re-generate the kernels. 此处我没有执行成功命令,但是并没有影响,系统正常配置成功。

  3. Reboot

  4. Go to suspend mode.

  5. Get an error when trying to load a saved state.

7、配置wayland

经过上述配置后,我发现重启系统将会默认进入到x11, 它是可以正常工作的,效果良好。但是,既然有强大的独立nvidia显卡,我们还是需要设置好nvidia. 下述根据 Wayland and the proprietary NVIDIA driver主操作,详细信息可以参考。

  • 启用nvidia相关服务

    1
    sudo systemctl enable nvidia-suspend.service nvidia-hibernate.service nvidia-resume.service
    此项参考:Preserve video memory after suspend

  • 强制启用Wayland, As of GDM 42 and NVIDIA driver 510, GDM defaults to Wayland. For older NVIDIA drivers (in between version 470 and 510), GDM has chipset-dependent udev rules to use Xorg rather than Wayland. To force-enable Wayland, override these rules by creating the following symlink:

    1
    sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules

注意:如果没有第67步,在GNOME桌面环境启动后,GDM不能显示wayland启动选项,而只是默认启动Xorg, 设置好67后,系统正常进入到wayland

8、Bottom Line

In the end, it’s essential to clarify a key point. Our guide has confidently demonstrated that Wayland can operate smoothly with NVIDIA on an Arch system. This, however, does not extend to guaranteeing that every application, game, or desktop environment will also function flawlessly.

The compatibility of these components with Wayland varies and is dependent on the extent to which they have integrated support for it.

For example, desktop environments like KDE Plasma and GNOME offer very good support for Wayland, ensuring a seamless experience. On the other hand, environments like Cinnamon, with only basic Wayland support, may not deliver the same smoothness. So, it’s important to consider these differences.

Similarly, using the Hyprland dynamic tiling Wayland compositor would result in a smooth user experience, whereas others that are still dependent on Xorg may not offer the necessary support for Wayland. This variability in compatibility applies to individual applications too, so it’s important to be aware of potential issues when using specific software.

In conclusion, navigating the complexities of setting up Wayland on Arch can seem daunting, especially for those wielding the power of NVIDIA GPUs, who have historically faced hurdles ranging from rendering glitches to compatibility concerns.

Yet, with the proper knowledge, a dash of perseverance, and our guidance, the hurdles that once seemed impossible begin to shrink to the level that, with the correct setup, NVIDIA and Wayland can indeed create a synergy that brings out the best in your Arch setup.

Finally, we recommend referring to the specific Wayland and NVIDIA sections on the official Arch wiki for a more comprehensive understanding. They provide detailed information on setting up and troubleshooting Wayland and NVIDIA on Arch, making them valuable resources for further exploration.

And, of course, we’d love to hear your feedback or thoughts, so please don’t hesitate to share them in the comment box below.

9、References

对于一个数组,使用#表示删除左侧的部分,%表示删除右侧的部分,同时支持正则表达式。例如:

1
2
3
4
5
6
7
8
9
url="https://gitlab.com/fengzhenhua/script/-/raw/$USB_REMORT_SH\?inline\=false"
echo $url |sed -e 's/\(.\)/\1\n/g' |grep "/" |wc -l
> 7 # $url中一共有7个`/`
echo ${url#*//*/*/*/}
>
-/raw/$USB_REMORT_SH\?inline\=false
echo ${url%/${url#*//*/*/*/}}
>
https://gitlab.com/fengzhenhua/script

注意:此处不同与网上的教程,网上的一些教程如Shell 8种字符串截取方法等,指明了截取字符串时某一个字符的方法,但是对于*的理解没有做深入分析,而本文指出其代表若干字符,是正则表达式的一部分。于是在截取网址时,使用正则表达式给出*//*/*/*/方便的取得了相要的地址部分。

在编写Shell脚本中需要判断网址中的/出现的次数,进而获取网址的结构,然后根据需要可以截取部分网址。假设我们有一个字符串“Hello Bash”:

1
2
3
$ STRING="Hello Bash"
$ echo $STRING
Hello Bash

使用 bash shell,我们现在可以计算任何给定字符的出现次数。例如,让我们计算字符 l 出现的次数:

1
2
$ echo $STRING | sed -e 's/\(.\)/\1\n/g' | grep l | wc -l
2

sed 命令首先将任何给定的字符串分成多行。其中每行包含一个字符:

1
2
3
4
5
6
7
8
9
10
11
$ echo $STRING | sed -e 's/\(.\)/\1\n/g' 
H
e
l
l
o

B
a
s
h

之后我们可以使用grep命令来仅搜索特定字符。在本例中,我们仅打印字符 l

1
2
3
$ echo $STRING | sed -e 's/\(.\)/\1\n/g' | grep l
l
l

剩下的就是使用 wc -l 来简单地计算行数:

1
2
$ echo $STRING | sed -e 's/\(.\)/\1\n/g' | grep l | wc -l
2

相同的策略也可用于计算文件中字符的出现次数。下面的 bash shell 命令计算字符 l 在文件 /etc/services 中出现的次数:

1
2
 $ cat /etc/services | sed -e 's/\(.\)/\1\n/g' | grep l | wc -l
9298

然而,计算字符出现次数的另一种方法是使用 grep 的 --only-matching-o 选项仅打印匹配的字符:

1
2
$ grep -o l /etc/services | wc -l
9298

  RS232是一种通用的串行接口,可以用来连接不同的设备,比如计算机、打印机、终端设备等。它可以传输数据、控制信号和电源,但是它有一定的缺点,比如传输速率较慢,最高只能达到115200bps,而且它也不能支持高级功能,比如多点控制和网络通信。那么,RS232能接显示器吗?

RS232

  RS232接口是一种标准的串行接口,它由25个接口针组成,每个接口针都有一个不同的功能,比如接收和发送数据,控制信号等。它的接口针分为4组,每组有5个接口针,第一组是信号线,第二组是控制线,第三组是电源线,第四组是用于接收和发送数据的线。

RS232能接显示器吗?

  RS232接口可以用来连接显示器,但是需要使用一个转换器,它可以将RS232接口转换成显示器接口,如VGA接口、DVI接口等。这样,就可以使用RS232接口来连接显示器,但是由于RS232接口的传输速率较慢,所以只能用来传输低分辨率的画面,比如640×480或800×600,而不能用来传输高分辨率的画面,比如1920×1080。

总结

  RS232是一种通用的串行接口,可以用来连接不同的设备,比如计算机、打印机、终端设备等。它由25个接口针组成,每个接口针都有一个不同的功能,比如接收和发送数据,控制信号等。RS232接口可以用来连接显示器,但是需要使用一个转换器,它可以将RS232接口转换成显示器接口,如VGA接口、DVI接口等,但是由于RS232接口的传输速率较慢,所以只能用来传输低分辨率的画面,而不能用来传输高分辨率的画面。

参考资料

一、流程图是什么

流程图(Flowchart)也称为框图,通俗的讲就是把“流程”用“图”的形式展现出来,也就是“流程”+“图”。通常会使用一些特定图形加上相应的文字描述表示流程的具体步骤,并用含有箭头的线将这些图形连接起来,表示步骤执行的算法与先后顺序。

流程图简单画法

二、流程图的常见作用

  1. 流程图可以把复杂的过程简单而又直观地呈现出来,帮助我们梳理流程的先后顺序,让整个流程的思路更加清晰、有逻辑。
  2. 帮助管理者了解流程内的具体流程,用于查缺补漏,避免流程内出现多余或遗漏的内容,简化整理步骤的同时确保流程的完整性。
  3. 帮助分析流程内出现的问题,让流程内参与者能准确了解自己的职责所在,提高工作效率、优化管理水平。
流程图的常见作用

三、流程图符号

  常用流程图符号
  流程图的类型有很多,例如程序流程图、数据流程图或工艺流程图等。虽然流程图的分类众多,但在绘制过程中,不管是什么类型的流程图,通常会使用相同符号表示同类型流程。
  如文档、卡片、角色由于流程类型存在差异,其使用的符号也会大不相同。下图给大家分享一些常用流程图符号供以参考。

常用流程图符号

  基本流程图符号
  虽然流程图符号如此之多,但在实际制图时能够频繁使用到的符号却并不多。用得较多且较为基础的有五种:起止框、处理框、判断框、输出输入框和流程线。

基本流程图符号

四、流程图结构

  流程图通常由三种结构组成:顺序结构、选择结构、循环结构。
  顺序结构:这是流程图三种结构中最简单的一种,只需按照流程内箭头方向依次执行内容即可。
  选择结构:选择结构也称之为判断结构,根据给定的条件进行判断,并以该判断结果来控制运行的流程。
  循环结构:循环结构就是在一定的条件下重复执行某一操作,用于判断程序继续执行某一操作或退出循环。分为直到型和当型两种循环结构。

流程图结构

五、流程图注意事项

  1. 为了使流程图直观且有逻辑,一般会遵循从上到下、从左到右的顺序排列。
  2. 一份完整的流程图会涵盖开始框和结束框,且一般情况下开始框和结束框分别只出现一次。
  3. 流程图可以出现包含和并列关系,但不能交叉,除非给予适当的判断。
  4. 对于判断框需要有两个或两个以上的执行条件,且每一条件要有相应的注释和执行结果。

六、流程图绘制

  流程图分为在线和软件两种绘制方式。在绘制流程图时有一个清晰的思路非常重要,鉴于不少小伙伴刚接触流程图时可能会分不清主次的情况,所以可以从运用模板开始学习。合理的使用模板可以加快学习绘制速度,便于寻找他人的绘制优点,并将其化为己用。

流程图绘制

在近十年的发展,显示设备的接口发生了巨大的改变。以前使用比较多的是蓝色VGA接口,接著出现了白色的DVI接口,当遇到不同接口时,还得买转接头进行转接。后来,又有了HDMI等接口,现在则出现DP和USB Type-C接口。那么,这么多接口,到底有什么区别,又应该用哪个呢?

VGA

VGA接口也称为D-Sub接口。在CRT显示器时代,VGA接口是必备的。因为CRT是模拟设备,而VGA采用的也是模拟协议,所以它们理所当然被匹配来使用。VGA接口采用15针插针式结构,里面传输分量、同步等信号,是很多老显卡、笔记本和投影仪所使用的接口。后来液晶显示器出现,也带有VGA接口。显示器内置了A/D转换器,将模拟信号转换为数字信号在液晶显示器上显示。

由于线材与信号干扰等一系列问题,VGA使用时一般仅能够达到1080p分辨率,在高分辨率下字体容易虚,信号线长的话,图像有拖尾现象。在数字设备高度发展的今天,VGA接口已逐渐退出舞台,一些显示器也不再带有VGA接口。

DVI

DVI的种类非常多,接口上有DVI-A、DVI-D、DVI-I,又可分为单通道与双通道。DVI-A(DVI-Analog)接口只传输模拟信号,实质就是VGA模拟传输接口规格,常用于转接显卡的DVI-I输出到VGA显示器接口。DVI-D(DVI-Digital)接口是纯数字接口,不兼容模拟信号。DVI-I(DVI-Integrated)接口,兼容DVI-I和DVI-D两种插头,兼容数字和模拟信号。它们的接口形状不同,如果接口不匹配就无法插入使用。

 以下是它们支持的最大分辨率与频率:

 现在有些支持4K分辨率的显示器,也带有DVI接口。为了达到4K的分辨率,在接口使用上就需要注意,不要使用DVI接口,否则是达不到4K分辨率的。

HDMI

HDMI接口在2002年提出,现在已经发展到HDMI 2.1标准,而且随着行业发展,HDMI 2.1标准已经能够支持4K 120Hz及8K 60Hz,支持高动态范围成像(HDR),可以针对场景或帧数进行优化,向后兼容HDMI 2.0、HDMI 1.4。最主要的是,它是视音频同时传输的。

如今很多的显示器内置音箱,使用一根HDMI线,就可以同时完成图像和声音的传输,这也是HDMI的一大优势。也因为如此,HDMI成为了当今显示器最常见的接口。我们在使用时,也应该优选这个接口。

HDMI在物理接口上,有几种类型。主要有标准HDMI接口,mini HDMI接口和Micro HDMI接口。对于长距离传输的HDMI线,一般线材较硬,这样,就尽量使用带有标准的HDMI接口的设备,以得到稳固的连接。Mini HDMI接口和Micro HDMI接口则更适合于小设备的使用。

DisplayPort

DP(Display Port)接口是HDMI接口的竞争对手。在一些显卡与显示器上,除了有HDMI接口,也带有DP接口。目前DP接口发展到1.4版本,能传输10bit的4K 120Hz视频,也可以支持8K 60Hz视频。DP1.4兼容USB Type-C接口,这就意味着,我们可以使用DP1.4协议,在USB 3.1传输数据的同时,同步传输高清视频。从趋势来看,这对于推动周边影音及影像设备的升级,是非常有好处的。而且,DP接口也可以单根线同步传输声音,达到使用显示器声音的使用方式。

DP口定义了两种接头,全尺寸(Full Size)和迷你DP(Mini),两种接头皆是20针,但迷你接头的宽度大约是全尺寸的一半。明基PD2500Q、PD2700U等显示器均带有Mini DP接口。在DP接口旁,都有一个“D”型的标志。

有些高端的显示器,会带有DP的输出口。这是一个非常好的功能。这样就能以菊花链的形式,完成显示器扩展级联。菊花链是最基本的拓扑结构,一般需要多屏扩展时,多是从显卡的多个端口输出到显示器,这不仅连线不便,而且对于不同的接口和分辨率,也不一定能满足一致。而使用支持菊花链技术的显示器,就能从一个显示器直接连接到另一个,满足多个级联。

(注在电子电气工程中菊花链代表一种配线方案,例如设备A和设备B用电缆相连,设备B再用电缆和设备C相连,设备C用电缆和设备D相连,在这种连接方法中不会形成网状的拓扑结构,只有相邻的设备之间才能直接通信,例如在上例中设备A是不能和设备C直接通信的,它们必须通过设备B来中转,这种方法同样不会形成环路。因为最后一个设备不会连向第一个设备。这种连线方法能够用来传输电力,数字信号和模拟信号)

Type-C

USB接口早已被大家所熟知,以往USB接口被设计用来传输数据,所以它在移动硬盘等存储设备的使用上非常常见。现在USB 3.1 Gen2的速度已经达到10Gbps,设计标准也可以满足视频、数据兼顾传输,所以在一些显示器上,也能够发现USB 3.1接口。现在的USB3.1接口,已经能够满足4K 30P的分辨率显示,大致与HDMI1.4在同一水平。但它以后再进行升级,必将能成为最通用的显示传输方式。需要注意的是,USB 3.1 Gen1就是USB 3.0,而USB 3.1 Gen2才是真正的USB3.1。

USB3.1是传输协议,而USB接口形状有好多种,拿USB 3.1的接口来说,有Type-A、Type-B以及Type-C。Type-C的形状最小,也被宣传的最多。我们所说的Type-C接口,仅仅是接口形状,它并不对等于USB3.1。Type-C接口,也被用在了雷电3上。

Type-C接口的好处在于可以正反插拔,部分Type-C接口也同样具有数据、电力、信号传输的功能,被应用到显示器上时可以带来很多方便。Type-C笔记本用户可以透过一个接口完成充电和连接显示器,还能使用显示器上拓展出来的USB接口,极大地减少了笔记本的负担。

雷电

雷电(thunderbolt)接口有Intel提出来,在苹果电脑上用的非常多,苹果的中文官网将其译为雷雳。它以速度快,传输稳定而著称。雷电接口的技术融合了PCI Express和DisplayPort(就是上面说的DP口)两种通信协议。其中PCI Express用于数据传输,可以非常方便地进行任何类型设备扩展;DisplayPort用于显示,能同步传输1080p乃至4K视频和最多八声道音频。并且两条通道在传输时都有自己单独的通道,不会产生任何干扰。

雷电接口到现在已经发展到三代。雷电1的速度达到10Gbps,雷电2的速度达到20Gbps,现在的雷电3达到40Gbps,依然处于民用传输速度的顶端。容易让人混淆的是,雷电接口的形状在雷电1和雷电2外形上采用的是Mini DP的外形,而雷电3采用的是USB Type-C的外形,但即使外形不同,它们采用的数据传输方式都是雷电协议。不像其它接口能直观地从形状就能分辨出来,使用雷电接口需要认准接口旁的闪电标志,以作区分。

雷电口也支持菊花链连接。而且,我们也可以在显示器下级连上雷电口的硬盘,作为扩展使用。这也是雷电口菊花链的优势所在。

总结来看,雷电接口是集信号、数据、电力传输为一身的集成性接口,可以极大地提高使用效率,目前这个接口多应用于苹果相关设备上。

这些常用的接口在各类显示器上都可以看见,对于我们日常使用的显示器,如今HDMI占有绝对的主导位置。它成熟稳定,也能够满足日常的需要,但是应用于显示器硬件校色时,并不推荐使用HDMI接口,它的RGB范围会有缺失,校色时选择DP接口是更好的选择。其余接口的实用性也很高,一些相对“高冷”的接口目前也在不断普及。因此,根据需要进行选择,才是最根本的解决方式。

一、先与电脑连接好两个显示器

显示器插口
  1. 电脑必须要有两个显示器插口,如HDMIDVIVGA都可以,其他参考【科普】显示器VGA、DVI、HDMI、DP等各种接口详细科普

  2. 使用相应线材连接显示器,可以一个连接DVI一个连接VGA,或是HDMI。使用什么线,取决于你的显示器支持什么接口。

  3. 连接完成,开机一般两个显示器可以正常显示。

注意事项:使用两个信号线分别将两个显示器连接到显卡上两个视频输出接口。电脑显卡必须支持双输出,有两个用于连接不同显示器的视频接口。

二、Linux(Gnome)连接两个显示器设置方法

Archlinux Gnome 双屏设置
  1. 打开设置显示器

  2. 选择加入镜像等设置. 其中加入是指两个屏显示不同内容,而镜像是副屏与主屏完全一样,适合教学演示之用。

三、WIN7连接两个显示器设置方法

  1. 在桌面空白处右击鼠标选择“屏幕分辨率”选项; 进入分辨率设置对话框。

  2. 如果电脑主机显卡连接有两台显示器的,就会有显示。单击“检测”进行检测。然后点击多显示器后面的按钮框,就可以看到“复制这些显示”和“扩展这些显示”两个选项。

  3. 选择的“复制这些显示”,那么在两个显示器上你会看到一模一样的Windows 窗口。适合教学演示、为多人展示相同内容的场所,也适合会场和户外等商业展示。

四、WIN10连接两个显示器设置方法

  1. Windows 10桌面上单击右键,选择“显示设置”。或通过快捷键Win + I打开设置,然后导航至“系统”>“显示”。

  2. 检测并配置显示器:系统将自动检测到两个显示器。在“显示”页面,你可以看到显示器的代表图标,点击“标识”按钮帮助区分哪个是显示器1,哪个是2。随后,选择“多显示器设置”,设定为“扩展这些显示器”,以实现不同内容的显示。

  3. 自定义布局:通过拖动显示器图标,你可以根据实际摆放位置调整虚拟布局,确保操作顺畅。

  4. 调整分辨率与方向:进一步个性化每个显示器的显示设置,包括分辨率和方向调整,确保最佳视觉效果。

  5. 保存设置:调整完毕后,设置会自动保存,无需额外确认,你可以立即体验双屏带来的便捷