去年搞了一个极空间Z2Pro,于是就想着把之前的svn库从移动硬盘转移到jZ2pro上。
24
2024
02
极空间与SVN
24
2024
02
11
2023
12
配对函数Cantor pairing
在《正整数对的唯一解》一文中,提出了一个问题,对于不同的整数对(a,b)找到唯一的正整数c,这样就可以通过c,一次性的比较不同整数对的大小
其实这个问题的解决方案已经在文中很接近了,就是将2维数据编码为1维表的过程
在询问了ChatGPT之后,我得到了一个关键的词,叫做配对函数
在数学中,配对函数是一种将两个自然数唯一地编码成一个自然数的过程。
20
2021
11
正整数对的唯一解
失眠,原因很多
昨夜失眠,竟然是因为想到一个数学题
一开始是这样的,双方投掷2个骰子,一般的规则就是每个人用加法把自己的2个骰子点数加起来,然后比大小
但是有时候会出现双方相同的情况,比如1+6和2+5
所以就在想,如果排除掉点数完全一样的情况下,有没有一种数学算法,可以一次计算比出大小
扩展和归纳起来就是:
对于一个整数对a,b(ab不分先后,即1/6和6/1视为同一个整数对),设计一种算法,使得对于不同的整数对,计算出来的结果为整数且唯一?
想不到好的办法,一开始先试试乘法即f(a,b)=a*b
显然,这个算法很快就被排除了,原因很简单,比如2*3=1*6或者2*2 = 1*4
既然乘法不行,是不是可以和加法结合起来呢,比如f(a,b)=a*b+a+b
睡不着,想了2个小时,发现一个反例,2*3+2+3 = 11 = 1*5+1+5
好吧,自己解决不了,就去请求万能的朋友圈
恍恍惚惚,半睡半醒之间,感觉找到了突破口,就是查二维表
做游戏我们常常会有查表的操作,细细一想,不就是查个二维表么,只要构建一个可以利用一个一元公式构建的二维表就行
比如最简单有序的6*6的表
1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 |
15 | 26 | 27 | 28 | 29 | 30 |
31 | 32 | 33 | 34 | 35 | 36 |
那么对于每一行a和每一行b就可以得到唯一的解(a-1)*6+b=a*6+b-6,-6不影响所以也可以去掉
这么一推广就可以得到这样的公式
f(a,b)=a*N+b
但是很显然有个问题,比如对于f(a,b)=a*6+b来说
随便取个ab,比如3和4,结果为3*6+4 = 22,那么我也可以a取个2,然后找到b使得结果也为22,即2*6+10=22
难道这样是思路是错误的么?
再看2*6+10这个例子,可以看到原因在于表里面根本就没有第10列,所以数据是超出了查表的范围的
那怎么办?既然超出列数,我们增加列数就可以。让列处于我们可查询的范围内。那么
N的最小值可以等于b。
那么公式就简化为f(a,b)=a*b+b= (a+1)*b
从公式上看就很神奇,之前f(a,b)=a*b不行,但是a加了一个1就可以
那么怎么从数学上证明这个公式是可行的呢?
来个反证法,
如果存在2对不同的整数对(a1,b1)和(a2,b2),使得(a1+1)*b1 = (a2+1)*b2,那么我们的公式就是错误的,否则肯定是正确的。
好吧,下面不会了,等想到数学证明方法再继续
05
2021
06
关于AAB的知识点整理
2018年,google推出了aab技术。在此之后google发布通知:从 2021 年 8 月起,新应用需要使用 Android App Bundle 才能在 Google Play 中发布。
这意味着以GP为主要平台的海外版本,都需要使用aab。那么什么是aab,和apk有什么不同呢?
aab官方介绍:https://developer.android.com/guide/app-bundle
简单地说aab就是一个带有很多分包数据的压缩包。它将一个apk拆分了多个小包,比如按CPU架构拆分,按语言拆分等等,最终移动设备安装时只需要下载需要的分包即可。
apk可以直接安装到用户的设备上,但是aab只是一种发布格式,所以不能直接安装。但是可以使用bundletool命令行连接设备进行模拟安装
16
2011
04
解决C#加载外部图片时大小变化的问题
关键字:C# BitmapImage 切片 图片变大 图片DPI
今天在写图片切片功能。思路是利用OpenFileDialog选择一张图片,然后用BitmapImage来存储。根据BitmapImage的大小Width,Height和切片的大小SectionWidth,SectionHeight,计算切片数量,然后利用CroppedBitmap循环切下图片,用FolderBrowserDialog选择位置,利用文件流FileStream和PngBitmapEncoder保存为png格式切片。