一些Python模拟角谷猜想的性能测试
公共部分
12345678910def solve(n): step = 0 while n != 1: if n % 2 == 0: n //= 2 else: n = 3 * n + 1 step += 1 return stepN = 1000000
v1
没啥好说的 顺序求解
主要代码:
12x = [i for i in range(1, N + 1)]y = list(map(solve, x))
v2
测试电脑为6C12T 故采用max_workers=12
主要代码:
1234from concurrent.futures import ThreadPoolExecutorx = [i for i in range(1, N + 1)]with ThreadPoolExecutor(max_workers=12) as e: y = list(e.map(solve, x))
v3
主要代码:
123import numpy as npx = np.arange ...
数学随笔
在学校玩计算器时无意发现一个神奇的式子
tan(sin−1(x))→xtan(sin^{-1}(x))\rarr x
tan(sin−1(x))→x
当 xxx 初始值为 110\frac{1}{10}101 时 按上面的式子迭代19次会得到19\frac{1}{9}91 再继续迭代17次会得到18\frac{1}{8}81;以此类推 最终到1
简单整理一下 定义
an+1=an1−an2 (n∈Z)a_{n+1}=\frac{a_n}{\sqrt{1-a_n^2}}\space(n\in\Z)
an+1=1−an2an (n∈Z)
若 ai=1k (i∈Z,k∈Z∩[2,+∞))a_i=\frac{1}{k}\space(i\in\Z,k\in\Z\cap[2,+\infin))ai=k1 (i∈Z,k∈Z∩[2,+∞)) 则 ai+2k−1=1k−1a_{i+2k-1}=\frac{1}{k-1}ai+2k−1=k−11
显然只要将表达式代入自身19次就能看出端倪了 但由于我计算力低下且在学校没时间 于是回家用代码测一测它
首先数值模拟就不必多说了(毕竟在 ...
OJ答案
为造福同学 将OJ中Python课程答案公布于此
OJ网址:https://oj.nsfz.net
章节1:输入、输出及赋值
1120 nsfz欢迎你
12print('nsfz')print('欢迎你')
1381 你的名字
12name = input()print('你好', name)
1119 A+B问题
123a = int(input())b = int(input())print(a + b)
章节2:顺序结构
1003 混合运算
12a, b=map(int, input().split())print((a + b) * (a - b))
1001 求一个数的立方
12a = int(input())print(a ** 3)
1008 求长方形面积和周长
12a, b = map(int, input().split())print(a * b, (a + b) * 2)
1122 计算线段长度
1234x1, y1 = map(int, input().split())x2, y2 = map(int, ...
用Windows To Go解救机房被机械硬盘拖慢速度的电脑
社团课上找到机房电脑缓慢的根源了——硬盘
有同学带了块移动固态硬盘 并成功从外接USB盘启动了电脑 速度直接起飞
机房电脑CPU是10代i3 理论上性能不差 但是被1TB的希捷机械盘极大地拖慢了速度
于是立刻买了块新固态硬盘准备装系统带机房去用
本来打算整个118GB的傲腾装系统的 那样速度肯定更起飞 但是要500多块钱 实在太贵了(
后来还是决定买个便宜的SATA 硬盘盒加硬盘一共100到手 上午买的下午就到了(京东就是快啊)
买的是128GB的长城GW560(买的时候小脑烧了都没看颗粒和TBW 后来发现是TLC就放心了 有80TBW 按比例来看比1TB 600TBW还高一点()
硬盘盒是个不知名的 支持SATA3.0
到手后按照标准流程格成NTFS先测个性能再说
测试结果:
1234567891011121314151617181920212223242526------------------------------------------------------------------------------CrystalDiskMark 8.0.4 Shizuku Editi ...
学校OJ探索
社团课上与同学玩学校OJ 并尝试对评测机进行一些探索 为了方便就用python代码了
已知学校OJ使用的是氦星人系统 评测机禁用了os模块 导致一开始没法进行系统调用 遂尝试读写文件 发现居然是可以的
(socket模块依赖os模块 导致暂时只能通过OJ的测试功能获取代码输出)
先尝试硬写大量数据以搞爆评测机 发现会报File too large错误 于是放弃
根据平时使用经验(做题时的报错)得知评测机为Linux系统 使用Python3.8
然后尝试向/tmp目录写文件 发现可以持久化保存 并且另一位同学也能读取到(顺便根据多次实验发现能读取到的概率大约50% 推测有两个评测机负载均衡)
之后尝试读取/proc等以获取系统信息 如下
信息
来源
值
CPU
/proc/cpuinfo
Intel® Xeon® Gold 5120 CPU @ 2.20GHz
内存
/proc/meminfo
16GB
硬盘分区
/proc/partitions
104857600 blocks (sda)… (按1KB/block则为100GB)
启动镜像
/proc/cmd ...
一些定积分的几何意义及计算
定积分
一重积分
∫abf(x)dx\int_{a}^{b}f(x)dx
∫abf(x)dx
几何意义:曲线 f(x)f(x)f(x) 与 xxx 轴围成的曲边梯形的有向面积
物理意义:以 f(x)f(x)f(x) 为线密度函数的曲线在 [a,b][a,b][a,b] 上的质量
计算时可使用牛顿-莱布尼茨公式
∫abf(x)dx=F(b)−F(a)\int_{a}^{b}f(x)dx=F(b)-F(a)
∫abf(x)dx=F(b)−F(a)
其中 F(x)F(x)F(x) 为 f(x)f(x)f(x) 的原函数,即 F′(x)=f(x)F'(x)=f(x)F′(x)=f(x)
二重积分
∬Df(x,y)dσ\iint_{D}f(x,y)d\sigma
∬Df(x,y)dσ
几何意义:曲面 f(x,y)f(x,y)f(x,y) 与 xyxyxy 平面围成的柱体的有向面积
物理意义:
以 f(x,y)f(x,y)f(x,y) 为面密度函数的平面在区域 DDD 上的质量
以 f(x,y)f(x,y)f(x,y) 为压强函数的平面在区域 DDD 上受到的压力
计算时可在平 ...
C++编译期计算的探索
先放个代码在这 解释下次再说吧(摸了
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394#include <iostream>#include <utility>#include <array>namespace compiling {#define DEF_BINARY_OP(NAME, OP)\ template <auto N1, auto N2>\ struct NAME##_t : std::bool_constant<N1 == N2> {};\ template <auto N1, auto N2>\ constexpr auto NAME##_ ...
Powershell美化
最近看了B站的一个视频 受到启发 准备给电脑终端美化一下
因为我把Windows Terminal作为终端默认程序 所以和窗口相关的就不用刻意美化了(本来就很好看)
安装Oh My Posh
跟着官网的教程走就可以了 非常简单
1winget install JanDeDobbeleer.OhMyPosh -s winget
之后一定要重启一下终端来加载环境变量PATH
然后我们会发现终端开始的信息成了这样
显然是字体出了问题
安装字体
这里推荐Nerd Fonts 这是将各种图标符号整合到常用代码字体的一个项目 到下载页面选择一个喜欢的字体用就可以了(这里使用JetBrainsMono Nerd Font)
安装好后从Windows Terminal的设置页面选择刚才的字体就可以了
终端适配
在终端中打开PROFILE文件
1code $PROFILE
把下面的内容复制进去
1oh-my-posh init pwsh | Invoke-Expression
然后保存
VSCode适配
修改VSCode的settings.json中terminal.integrated.fontF ...
CSharp随笔-癫疯之作
起因是写了这样一段代码
1234567891011121314if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add){ string ipString = string.Join(",", e.NewItems.Cast<IWebSocketConnection>().Select(x => x.ConnectionInfo.ClientIpAddress)); WeakReferenceMessenger.Default.Send<DisplayAlertMessage>(new("有新用户连接", ipString));}else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove){ string ipString = string.Join( ...
.NET MAUI 踩坑
时隔数月 皮燕又痒了 想搞搞Android开发
由于不熟悉Android Studio的操作和Java/Kotlin 所以优先选择熟悉的VS-.NET-MAUI-C#
在这里记录一些遇到的问题 以便以后参考
教程
MSDN的文档过于零散 这里按照一般项目开发的顺序整理 具体细节参考MSDN
在VS中创建示例项目
略
修改App Identifier(你也不想看到com.examplecompany.appname的包名罢)
修改.csproj文件中的ApplicationId节点
如果进行安卓开发 则修改AndroidManifest.xml中的manifest节点的package属性和manifest.application节点的android:label属性为合适的值
更改应用图标
在网上找到或制作自己的应用图标(最好是SVG格式) 放到合适的目录(如Resources/AppIcon)
修改.csproj文件中的MauiIcon节点的属性 其中
Include为背景图片 如Resources\AppIcon\appicon.svg [必选]
ForegroundFile为 ...