世界的本质是什么?
我们所处所谓的物理世界,会不会仅仅只是一道程序。...
python 中跨脚本处理全局变量
Python 中跨脚本传递全局变量的方式多种多样,这里介绍一种比较优雅的方式。 两个脚本数据交互 脚本 1 中定义并初始化全局变量,并且定义全局变量赋值取值函数。 1234567891011121314def _global_dict(): global _gd _gd = {}def set_value(key, value): _gd[key] = valuedef get_value(key): try: return _gd[key] except Exception as e: print("读取{}失败".format(key),e)_global_dict() 脚本 2 中,直接导入脚本 1 即可实现初始化。 多脚本交互 专门设定一个脚本用于存放处理全局变量。 123456789101112def _global_dict(): global _gd _gd = {}def set_value(key,...
集成光子预测系统(IPPC)
集成光子预测系统(Integrated Photonic Prediction System, IPPC)旨在为用户提供快速设计特定结构的光子器件和光电子链路的方法。 1 研究背景 后摩尔时代,随着集成电路走向物理和理论极限,集成光子技术作为可替代方案,得到越来越多的关注。然而,无论是集成光子器件设计、还是集成光电子系统链路设计,都需要花费大量的仿真时间。同时,在设计过程中,最终设计不是一步达成的,其间,需要大量的迭代仿真才能设计出最终符合要求的设计结构。然而,在过去,从初始构想到设计结果中大量的无效仿真数据都被舍弃。为帮助设计者节约仿真时间同时对无效数据加以利用,集成光子预测系统(Integrated Photonic Prediction System,...
直接二进制搜索方法(DBS Method)
直接二进制搜索(Direct Binary Search,...
使用 tkinter 创建类 web 界面
tkinter 作为 python 标准库,兼具环境友好、简单易用等特性。然而一直以来,其难以构建复杂动态 GUI 的问题一直被诟病。在此,参考开源案例,尝试开发类 WEB 界面开发。 1 界面展示 2 内容刷新 1234567891011121314151617181920def flush_gui(self): gui_width = self.root.winfo_width() gui_height = self.root.winfo_height() oper_order = self.oper_order name = self.name button_click = self.button_click if self.root.state() == "zoomed": max_gui = 1 else: max_gui = 0 self.root.destroy() win = Window( ...
写给过往
镜头里金黄色的油菜花田, 在风里如记忆般若隐若现。 想起初识的画面, 世界模糊成一片连成线。 回到最初的起点, 会不会可以走得更远? 即使回到原点, 结局也不会改变。 只是微笑着含着泪眼,...
从便携式通讯设备爆炸谈谈
世界局势在不想努力却想获利的搅局者地推动下,已经越来越乱,俄乌冲突未止,中东也陷入漩涡,并且在利用自身尚存为数不多的优势搅起更多的纷争,好为其可以继续不劳而获。 对讲机、寻呼机爆炸事件,也再次扯开这些善言者的遮羞布,他们口口声声提到的和平、人权,仅仅只是他们控制世界、控制舆论、控制思想的武器。 边缘政治也在考验着我们国家,我们克制、努力,爱好和平,但绝不是软弱,犯我中华者、虽远必诛。所以我们需要时刻准备着被卷入战争的风险,也需要有一定的意识来防范便携式电子设备爆炸式事件。 首先是,通讯中心、通讯节点基站,更新 5G...
格雷码转实数【数组】
数组在一定程度上可以代替 for 循环实行并行处理,实现矢量化加速。 在工作过程中,遇到 "遗传算法如果因为意外情况中断了,如何恢复?" 的问题。 首先,需要记录优化结果对应的最优解. 然后,最优解编码后用于代替随机初始化基因序列。 这个过程为了实现矢量化并行加速,需要将输入的数组传递进编码系统进行编码处理。 代码 以下代码展示的参数均为数组形式。 123456789101112131415161718def real2gray(lb, ub, precision, x): len_single_Chrom = int(np.ceil(np.log2((ub-lb)/precision+1))) y = np.round((x-lb)/precision) bin_list=[] bin_offset = [] bin_offset.append(np.zeros(len(y))) for i in range(len_single_Chrom): binary_list =...
基于开源 fdfd 求解器 ceviche 的参数化仿真模型创建
ceviche 是一个开源的二维 fdfd 求解器,最近开发自动化设计工具,想要找一个物理场求解器测试自动化设计工具收敛性能,因此简单学习了下该开源求解器。 自动化设计工具旨在为使用各类仿真工具的用户提供从扫参到优化的飞跃,和扫参相差不大的设计流程,提供更强大的功能。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107import numpy as npimport matplotlib as mplmpl.rcParams['figure.dpi']=100import matplotlib.pylab as pltimport cevichefrom skimage.draw...
格雷码编解码
格雷码(Gray Code)是一种特殊的二进制编码方式,其中相邻的两个格雷码之间只有一个二进制位不同。这种编码方式不仅保证了相邻数字之间的差异最小,从而降低了错误率,这种编码方式的特点使得它在数据传输和旋转编码器等领域具有显著的优势。 最近,在重构遗传算法的过程中,想到使用格雷码表征基因序列。二进制编码与格雷码在操作系统层面,可能格雷码优势已经不太显现,操作系统层面已经做了码制转换或者编码纠错太多手段降低误码率,即使是格雷码也需要进行特定编码再由操作系统输出给硬件。 1 编码 编码过程分为两步。 第一步,实数转换成二进制编码,这个过程用比较而不是算术操作,降低了系统对计算的需求,简单比较电路即可实现,不同比较器属于模拟电路范畴,专用程度太高。 第二步,二进制编码进一步编码成格雷码。 123456789101112131415161718192021222324252627def real2gray(lb, ub, precision, x): len_single_Chrom = int(np.ceil(np.log2((ub-lb)/precision+1))) ...