自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(834)
  • 资源 (2)
  • 问答 (3)
  • 收藏
  • 关注

原创 光学仿真小作品集

本文将展示一些作者本人平时自制的光学仿真小作品。

2023-04-20 08:24:55 579

原创 000---专栏目录

100个numpy问题链接1. 查看当前使用的numpy模块的版本号

2020-11-16 19:00:00 301

原创 VS code 查看 ${workspaceFolder} 目录指代路径

由于本人的文件目录名称有些敏感信息,所以用马赛克涂抹了,但是我们可以看到,输出显示的是一个完整的目录信息,知道这点就足够了。变量,那么这个变量具体的指代路径是什么呢?本篇文章我们将对这个问题进行说明。在 VS code 中,有时候我们需要添加一些文件路径供我们导入自定义包使用,此时,我们通常会用到。格式的变量,我们也可以采用此种方式进行查看。官网给出的一些预定义的变量如下,感兴趣的读者可以自行尝试。中运行可以参考引言中提及的文章),运行后,一文中我们已经介绍了如何创建属于自己的。这样,我们就可以查看变量。

2024-09-19 15:22:08 394

原创 VS code 创建与运行 task.json 文件

完成后在点击下图中的任何一个项目,这里我们选择。,有些仍旧需要我们个人自定义,其中就包括。当然我们也可以自定义其他名称的。文件,这里我们将介绍另一个文件叫做。,工作区或文件夹特定任务是从工作区的。很多设置已经自动集成好了,但是对于。如下图所示,在打开的搜索框中输入。会为我们创建一个默认的。编译器就会自动运行当前。点击上方的三个点,选择。文件供我们自己使用。

2024-09-19 15:09:56 382

原创 VS code EXPLORER 中不显示指定文件及文件夹设置(如.pyc, __pycache__, .vscode 文件)

文件我们是不必要使用它们的,我们可以进行如下设置让其不显示。不让它显示的方式有很多种,这里我们来介绍两种方式。下面被标红,且有波浪下,这是编译器在提示我们这里可能存在一些小错误,事实上,前面的。号称地表最强轻量级编译器,其最大的优势在于用户可以根据自己的需求下载适合自己的。文件是编译后的二进制文件,用户无法打开或者编辑它们。的文件夹,我们点击箭头使其展开,在其下面可以看到一个名为。的时候获取到了这一文件,这里特来记录说明一下。中通常我们只希望显示我们的代码文件,对于。添加完成后,我们会发现,此时的。

2024-09-19 10:01:10 786

原创 光芯片版图绘制软件测评

对于编程实力比较强的小伙伴,完全掌握这一个软件就足够绘制出自己的版图了。但是文档方面对于新手并不友好,编程实力一半的小伙伴不推荐使用。是光芯片版图绘制软件的最底层软件。市面上的大多数版图绘制软件都是围绕这一软件展开的。版图绘制软件最终生成的文件均以。的功能算不上高端,但是极大程度上为用户节约了自己开发。,是内部工程师自行开发,非常具有技术含量。个人使用该软件时间不长,这里仅作参考。的成本,使得绘制版图变得容易。中的内置函数,大多数创建。由逍遥科技开发的版图绘制软件。该这个软件的本质是使用。

2024-09-18 10:16:43 231

原创 GDSFactory 无法显示特定图层上的器件

经过本人的验证,除了上述图层外的少部分图层器件也可以显示外,大多数未知图层都是无法进行显示的,为了解决这个问题,可以使用。绘制版图库,有些时候我们无法用它的内置函数显示特定图层上的器件,这里我们将对这一问题进行说明。运行上述代码后,我们会看到如下图像。,绘制也是什么也得不到的,这是因为,可以看到,什么也没有得到,如果将。

2024-09-18 09:41:06 68

原创 VS code 写下 print 时让编译器自动添加括号

也很多,用户可以根据自己的喜好进行自定义。但是每次写代码的时候发现当我写完。一样为我自动添加括号,这是不科学的,因此,这里记录一下如何进行这个设置。在末尾位置添加上上述代码后关闭设置即可,之后在书写。我们先点击左下角的设置按钮,再点击右侧的。结束后编译器就会为我们自动添加上括号了。最近本人由于某些原因开始使用。速度非常快,且占用空间少,在打开的标签页中选择。

2024-09-13 17:11:50 396

原创 查看 Python 版本及当前电脑上可执行文件安装目录

【代码】查看 Python 版本及当前电脑上可执行文件安装目录。

2024-09-10 14:07:41 271

原创 使用 i3.LayoutCell() 方法绘制版图并输出为 GDS 文件

类对层的映射信息进行指定,最后进行输出。理解了这个以后,我们此时来看错误提示信息,这表明,如果我们想要输出。运行上述代码,程序就正确执行完成并退出了,之后我们使用。窗口下我们会看到如上图所示的层显示,这里的。运行上述代码后,我们会得到以下错误提示信息。文件,我们需要指定两个层的信息,分别为。为了指定这两个层的信息,首先我们需要按照。文件中有器件存在,那么通常在右侧的。首先,我们使用如下代码尝试导出。我们看到,这里提示说没有对应的。首先我们需要理解,这里说的。文件,可以看到以下结构。文件中核对后我们得到。

2024-09-04 17:18:42 96 1

原创 IPKISS 服务器部署环境如何找到 get_technology() 目录

进行跳转,跳转后我们可以查看当前文件在计算机中的位置,但是很不幸,对于服务器环境上的配置,该操作会跳转至。版图绘制中所有重要的参数几乎都被收集在了这个目录下。本文,我们将介绍如何进入到这个目录中查看对应的参数。后续我们会对一些参数调用,同时对查询它们对应的信息的方法进行说明。后续通过查阅上述目录下的各个文件夹,我们就可以得到我们想要的。的根目录,而无法实现个人配置目录的跳转。了解的加深,作者本人逐渐开始探索。输入上述代码后,我们可以通过点击。目录实际位于如下文件夹内。

2024-09-04 16:24:06 48

原创 使用 i3.Boundary() 函数创建圆形波导

的内置图形函数可以创建各式各样的波导,这里我们以创建圆形波导进行举例。一文中我们介绍了使用那些内置函数可以创建波导,理论上,使用。对形状进行包裹,那么我们就需要将其视作。,因此,当我们添加时,我们需要将其视作。对象进行添加,反之,如果我们使用。对象进行添加,详情可参考。函数创建的对象是一个。

2024-09-04 15:10:48 53

原创 使用 i3.Waveguide() 函数创建波导

【代码】使用 i3.Waveguide() 函数创建波导。

2024-09-04 14:59:38 47

原创 IPKISS i3.SRef() 函数

[TOC](IPKISS i3.SRef() 函数)

2024-09-04 11:51:03 59

原创 IPKISS 绘制 Euler Fixed Bend 的创建方法

运行相同的代码,就可以得到如下图形。一文中我们介绍了如何使用。的整个弯曲显示的尺寸为。的尺寸,我们需要进入。当然,我们也可以更改其。这里我们介绍如何使用。

2024-09-04 09:12:26 346

原创 leetcode 3110 字符串的分数

遍历字符串到倒数第二个字符的索引值处,使用索引值提取当前字符和后一个字符,计算它们的 ASCII 码差值的绝对值并求和即可。该种方法的代码行数较少,但是对于新手可读性较差,本人推荐方法。对象变成了列表对象后再进行求和,两种方法均可。我们使用行内循环去掉对。

2024-08-27 16:03:24 436

原创 leetcode 3146 两个字符串的排列差

循环遍历第一个字符串,在第二个字符串中找出第一个字符串中的对应字符的位置,做差,再取绝对值,最后求和即可。上述代码我们用了两次循环,且使用了累加的方式,每次循环进行一次加法运算,这样就会增加时间。方法也是一个遍历的过程,会导致代码需要的时间很长。进入循环,本题中可以缩减至少一半的时间。中使用字典处理字符串就可以避免使用。我们可以尝试使用行内循环将累加变成对。对象的一次性求和,就可以减少时间。上述代码可以实现目的,但是。

2024-08-27 15:13:11 340

原创 leetcode 1957 删除字符使字符串变好

中在字符串中做删除元素的操作是很困难的,通常我们都会创建一个新的字符串或者列表,然后进行循环,将不需要被删除的字符添加进新的字符串或者列表中,最后获取结果。的常用技巧中提及了可以生成一个空的字符串来完成这一操作,但是这种方式的用时比使用列表更长。时我们需要判断是否存在连续三个相同的字符,即 s[i] == s[i-1] == s[i-2],在理解了这一层后我们即可写出如下代码。从题目可知,连续三个相同字符出现时,删除第三个字符,那么我们需要分情况,当给定字符串的长度小于。中也可以实现相同的结果。

2024-08-27 14:19:24 548

原创 leetcode 169 多数元素

本题较为简单,但是有一些比较有趣的方法,这里特来记录一下。

2024-08-26 16:25:39 241

原创 Python 获取字典值中的最大值所对应的键

对比后,我们发现,它的最大值是。,我们该如何获取到它呢?

2024-08-26 16:23:39 147

原创 leetcode 560 和为k 的子数组

不够迅速,因此,我们考虑使用其他方式实现。上述方法虽然可行,但是时间复杂度为。需要特别注意的是,这里的。

2024-08-26 14:08:35 382

原创 leetcode 438 找到字符串中所有字母异位词

题中要求我们找出所有的异位词并进行存储,而本题我们只需要找出异位词对应的索引值。因此,我们无需用到字典,只需使用列表即可。建于代码并不复杂,这里不做过多说明,读者可以自行理解,如果有问题可以在评论区留言。

2024-08-23 17:33:00 499

原创 leetcode 3 无重复字符的最长子串

那么则进行循环,我们使用两个变量进行循环,用来创建一个动态区域,然后判断位于这个动态区域之后的字符是否包含在这个动态区域之内,如果包含,就中断,如果不包含,就把这个字符加入动态区域中,接着判断。如果字符不在字典内,则用字符作为字典的键值记录当前右侧指针所指向的位置,并且记录 右侧指针位置-左侧指针位置 和。本题重点是创建一个动态区间,然后判断位于这个动态区间之外的字符是否被包含在这个动态区间范围内。值的大小,记录更大的值,循环结束后返回。就可以得到无重复字符的最长子串的长度。的情况要重点进行讨论。

2024-08-23 15:29:56 501

原创 leetcode 49 字母异位分词

首先,我们创建一个字典对象,然后遍历整个字符串列表,并且使用sorted()函数对字符串列表进行排序,所有的异位分词经过排序后它们的组成和顺序会趋于一致。但是需要注意的是sorted对字符串进行排序后会变成一个由单个独立字符组成的列表,我们需要使用join将它们重新连接为字符串。进一步我们判断组合后的字符串tmp是否位于我们创建的字典对象dict1中,如果不在,就将原始位于strs中的字符串以值的方式添加进入字典,这里特别需要注意的一点是,一定要以列表类型进行添加。对应下面代码中的。如果tmp在dict1。

2024-08-22 11:07:29 243

原创 leetcode 80 删除有序数组中的重复项 II

只是此时因为要求保留重复元素两次,我们的左侧指针可以从第二个数据开始,且右侧指针需要和两个元素的值进行判断。,我们观察到数组是按照顺序排列的,因此,我们可以直接对比右侧指针所指向数据与左侧指针值。的值所指向数据是否相等,相等,则右侧指针右移,不相等,则左侧指针值。并存储右侧指针当前指向的数据。仍旧使用双指针, 思想与。

2024-08-22 10:03:49 465

原创 leetcode 26 删除有序数组中的重复项

本题使用双指针解法即可,右指针移动,若右指针所指向元素与左指针指向元素一致,右侧指针继续右移,若右指针指向元素与做左指针指向元素不一致,左指针位置。本题目在理解了双指针后难度较易,这里不再过多说明了。,且令左指针处元素等于右指针处元素。

2024-08-22 09:50:22 308

原创 碱基 A 和 C 方式排序

在生物学中,很多时候我们需要对碱基序列进行排序,这里分别介绍。根据排列组合公式可得总共的排序组合数为。根据排列组合公式可得总共的排序组合数为。(可重复排序) 排序和。(不可重复排序) 排序。

2024-08-21 16:50:02 448

原创 Python 将单词拆分为单个字母组成的列表对象

这里介绍一个简单算法,将英文单词拆分为其对应字母组成的列表。

2024-08-21 16:36:17 457

原创 Leetcode 283 移动零

今天,看到了一个双指针算法,构思非常巧妙。这里特来记录一下。

2024-08-19 15:02:58 533

原创 Python 算法------列表对象逆向位移一次后形成的新列表

一文中我们介绍了列表对象中的各元素正向移动一个位置后的新列表算法。这里介绍列表对象逆向位移一次后形成的新列表。逆向移动时,相较于正向移动更加抽象,读者可自行理解。

2024-08-19 13:36:00 211

原创 Python 算法------列表对象正向位移 n 次后形成的新列表

一文中我们介绍了该如何获取列表对象正向位移一次后形成的新列表。本文我们将在此基础上介绍如何获取正向位移。这里我们采用文章中给出的方法二。最简单的方式就是在之前的基础上外层加入一个。

2024-08-19 13:11:19 326

原创 Python 算法------列表对象正向位移一次后形成的新列表

了,这样做的好处就是可以使得列表对象的索引值头和尾连接起来,方便一些其他的操作。那么我们有没有可能不创建新的列表对象,而完成这一操作呢?今天遇到了一类算法题目,本算法属于个人自己想到的一个算法,使用。库的话可以直接秒掉这个题目,但是此处我们仅使用。中列表对象的最后一个元素的索引值是。对于这个题目我们该怎么进行呢?这里其实我们就可以理解为什么。至此,这一算法我们便完成了。的内置函数来做这道题。

2024-08-19 11:14:24 244

原创 i3.Waveguide 与 i3.RoundedWaveguide 的区别

参数指定其路径弯曲的半径。从而将弯曲部分变得平滑。参数,绘制出来的图像是什么样子呢?类中继承的,意味着其本质上具有了所有。的性质,二者属于包含关系。这里我们将重点介绍一下。这就是二者最大的区别。

2024-08-16 15:37:36 48

原创 Ports Number of field profile samples 参数设置

如果去官方论坛查看解释,往往会被搞得云里雾里。这个参数实际上表示的是仿真时需要的模式数量。比如,我们要进行但单模式仿真,如上图所示,我们选择的是。如果我们的仿真涉及高阶模式,那么可以根据高阶模式的数量设定这个值,如果只看基模,那么我们需要设置其为。端口中的光束模式进行设定,很多时候我们会遇到一个名为。仿真时,通常我们会对。

2024-08-16 15:02:02 45

原创 transition curve

表示在测量中,切向部分和圆形曲线中间的光滑过渡部分。在绘制图像的时候遇到了一个说法叫做。,这里特来对这个名词的含义进行记录。

2024-08-16 14:54:05 40

原创 Python __all__ 魔法方法

的形式,这种导入方式会引入一些可能无法预测的问题,因此,这个知识点大家了解即可。方法,本人每次读到都会比较困惑,这里特来记录一下这个的用法。y 中所有的变量,然后进行打印就可以得到对应的结果。并没有实际意义,因为在导入模块中,我们不推荐使用。,它也可以用来存放函数或者类对象。很多时候写代码,总是会遇到有人使用。变量没有被定义,因为我们定义的。我们又有另外一个文件,其名称为。比如我们这里有一个文件,名为。变量,因此,我们可以在。此时,我们看到,提示我们。

2024-08-16 14:48:34 323

原创 PSO Python 代码实现

这里我们展示如何使用 Python 代码求解。一文中描述的问题,不使用任何。

2024-08-16 13:36:56 118

原创 PSO 算法实例(手动推导过程)

关于 算法的基础概念可以参考 Particle Swarm Optimization 基础概念。本文我们将举一个示例对这个算法进行详细说明。这里我们再来重温下算法步骤,并且我们给出更为具体的算法操作步骤。使用 算法找出如下方程的极大值。使用四个粒子,且各粒子的初始位置是 x1=1.5x_1=1.5x1​=1.5,x2=0.0x_2=0.0x2​=0.0,x3=0.5x_3=0.5x3​=0.5,x4=1.25x_4=1.25x4​=1.25。假设 w=0.8w=0.8w=0.8,c1=c2=2..05c

2024-08-15 16:31:02 437

原创 Particle Swarm Optimization 基础概念

它涉及了一组粒子或者代理人,通过在空间中移动来寻找给定问题的最优解。比如,求解一个函数表达式的全局极值,可以是全局最大值,也可以是全局最小值。上述表明,每一次粒子做完运动后,会根据当前群组的最优解以及单个粒子的最优解对自身速度进行调整,从而进行下一次的迭代运算。是加速度银子,与单个粒子和群整体相关。表示单个粒子对它周围粒子的可信度。叫做惯性,可以理解为粒子上一次运动的速度。叫做社会影响,粒子群最佳位置的影响。被叫做个人影响,即单个粒子的影响。表示单个粒子对自身的可信度,粒子的运动可以用下图来描述。

2024-08-15 14:50:32 147

原创 IPKISS 内置可以用来创建 PCell 或者波导的形状函数

均可以用来创建结构,后续教程中我们会给出具体对应示例。对象,并且需要明确地指定其所在地图层。中,有三类命令可以用来创建结构。中几何图形的基础形状。这里需要特别注意,第一个。中还有其他方式,比如。子类表示被包含,详见。

2024-08-14 09:49:30 55

numpy100.zip

用于100个numpy问题25-100相关数据集合,本数据集合仅粉丝可以下载,并且仅 应用于numpy的教学教学目的,请不要过度传播

2020-10-30

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除