十进制

一个十进制数 372,可以通过如下方式单独取出 3、7、2 三个数
372 % 10 = 2 372 / 10 % 10 = 7 372 / 10 / 10 % 10 = 3 \begin{aligned} 372 \% 10 = 2 \\ 372 / 10 \% 10 = 7 \\ 372 / 10 / 10 \% 10 = 3 \end{aligned} 372%10=2372/10%10=7372/10/10%10=3​

在十进制系统中,372 可以看成 10 × 10 × 10 坐标系中的某个点,乘法表示一种维度的提升,所以这是一个三维的系统,取模运算可以提取当前维度的值,除法运算可以降低维度,通过这两者的组合,可以提取出任意一个维度的坐标值。

非十进制

假设是一个 7进制系统,那么 372 可以表示为 7 × 7 × 7 × 7 坐标系中的某个点(因为 7 3 < 372 7^3 < 372 73<372),通过相同的方法(取模用于提取当前维度的值,除法用于降低维度),可以提取出每个维度中的坐标值。
372 % 7 = 1 372 / 7 % 7 = 4 372 / 7 / 7 % 7 = 0 372 / 7 / 7 / 7 % 7 = 1 \begin{aligned} 372 \% 7 = 1 \\ 372 / 7 \% 7 = 4 \\ 372 / 7 / 7 \% 7 = 0\\ 372 / 7 / 7 / 7 \% 7 = 1 \end{aligned} 372%7=1372/7%7=4372/7/7%7=0372/7/7/7%7=1​

所以最终结果是1041(从下往上取值)。

不规则的系统

无论十进制还是七进制,每个维度的值都是相同的,如果有一个 m × n 的坐标系,该如何确定某个值在每个坐标上的值呢?可以使用同样的方法,假设一个 8 × 9 的坐标系,可以把 8 当作维度信息,9 当作进制信息。对于某个具体的数,64,我们先取 最低位的值,通过 64 % 9 = 1 64 \% 9=1 64%9=1 得到,然后在取另一个维度的值,通过降维再取模得到 64 / 9 % 8 = 7 64/9\%8=7 64/9%8=7,所以 64 对应的坐标值为71。表示 64 = 7 ∗ 9 1 + 1 ∗ 8 0 64 = 7 * 9^1 + 1*8^0 64=7∗91+1∗80。如果是一个 9 × 8 的坐标系,则 64 对应的值为 80 = 8 × 8 1 + 0 × 9 0 80=8\times8^1+0\times9^0 80=8×81+0×90。所以取的坐标系不同,所得到的值也不同。

总结

对于一个 a 1 × a 2 × . . . × a n a_1 \times a_2 \times ... \times a_n a1​×a2​×...×an​的坐标系,通过如下方式确定某个坍缩后的值 X X X 在该坐标系中的取值 ( A 1 , A 2 , . . . , A n ) (A_1,A_2,...,A_n) (A1​,A2​,...,An​)
A n = X % a n A n − 1 = X / a n % a n − 1 . . . A 1 = X / a n / a n − 1 / . . . / a 2 % a 1 \begin{aligned} A_n &= X \%a_n \\ A_{n-1}&=X/a_n\%a_{n-1} \\ ... \\ A_1&=X/a_n/a_{n-1}/.../a_2\%a_1 \end{aligned} An​An−1​...A1​​=X%an​=X/an​%an−1​=X/an​/an−1​/.../a2​%a1​​

除法运算可以降低维度,取模运算可以提取当前维度的值,通过这两者的组合,可以最终确定某个值 X 在该坐标系中的位置

如何获取某个坍缩后的值在不同坐标系统中的位置相关推荐

  1. JAVA中String类以形参传递到函数里面,修改后外面引用不能获取到更改后的值

    最近熟悉java类时,了解到String类是引入类型,同时是一个不可变字符序列 public static void main(String[] args){String str="hell ...

  2. js获取php页面session的值,在html页面中取得session中的值的方法

    1.首先呢session的key-value都是存在server的,浏览器HTML页面是没有办法直接取得session中的值,只有在html里能通过js拿到jesessionid之类的东西. 1.1. ...

  3. 获取云闪付token值,在spring中使用一个单线程的例子

    这里,是通过云闪付接口,先获取云闪付的token,将这个token存进本地服务redis里面,作为参数,方便后面继续请求云闪付的其他接口. mpay_url=https://open.95516.co ...

  4. html获取问号后的参数,html问号后的值怎么获取

    在javascript中,可以使用search属性获取html问号后的值,具体语法为"location.search":search属性是一个可读可写的字符串,可设置或返回当前UR ...

  5. android log 如何获取double类型后小数点的值_【ES6基础】Symbol介绍:独一无二的值...

    开篇 ES6之前我们都清楚JS有六种数据类型:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object),今天笔者讲的Symbol类型是 ...

  6. mysql获取插入数据的id_mysql插入记录后获取插入数据的id值

    最近自己折腾点东西,使用mysql数据库的时候发现没有oracle的序列,插入数据前无法通过获取序列的方式拿到记录ID值,设置到关联表中进行关联. 在网上找了一些相关的资料,可以拿到最后一次插入的ID ...

  7. mysql累加某字段到达临界值,获取另一个字段的值

    一.前言 这篇博客的标题不大好起,所以下面先具体说下需求吧. 1.表结构 +----+-----------+-------------------+ | id | cost_rate | conve ...

  8. 【原创】数据库中时间字段的值读取到DataSet中后,毫秒部分丢失。

    数据库中时间字段的值读取到DataSet中后,毫秒部分丢失. 在网上查了些解决方案,说读取时间时,先转化为DateTime类型,然后在ToString("yyyy-MM-dd HH:mm:s ...

  9. 获取ISAPI_Rewrite重写后的URL

    ISAPI_Rewrite是一个较为好用的URL重写组件,安装和配置都比较简单,防盗链的设置也极其简单. 问题 如何获取被ISAPI_Rewrite重写后的URL. 测试环境:IIS6中使用ISAPI ...

最新文章

  1. hbase developer API 1.22版
  2. Hash(4) hashtable,hashmap
  3. 网站SEO优化中内部链接的优化
  4. 网络篇:朋友面试之TCP/IP,回去等通知吧
  5. 梯度的负方向是损失函数下降最快的方向
  6. php mysql难不难_PHP操作mysql数据库
  7. DataSet本地化数据的二表链接操作
  8. 太牛逼了!这个开源项目,可以把我从视频中移除!
  9. 2012年3月份第2周51Aspx源码发布详情
  10. 如何用AD打开PADS的PCB文件?
  11. 郭天祥的10天学会51单片机_第一节
  12. Qt开发笔记之编码h264码流并封装mp4(六):ubuntu平台编译mp4v2并封装mp4
  13. Vijos 1048 送给圣诞夜的贺卡(dfs)
  14. 如何用Web Scraper抓取巨潮资讯网全站乐视相关pdf文件
  15. AWS吹走了私有云天空中最后一片乌云
  16. 通过函数seaborn.cubehelix_palette生成顺序调色板
  17. verilog分频电路
  18. 两年多工作心得和体会
  19. matlab向excel连续写数据,每次换行
  20. 布法罗大学计算机硕士学费,美国水牛城大学学费贵不贵(美国水牛城大学往年排名情况怎么样)...

热门文章

  1. UY云新后端服务今日上市!功能多稳定的后台~
  2. js控制html下拉框select的选择,js实现select下拉框选择
  3. FPGA小白学习之路——调用rom
  4. 人脸识别技术成“金苹果”?安全与隐私不可偏废
  5. 什么样的人适合做会计(转)
  6. 外卖添加订单c语言设计,外卖平台订单分配系统设计是什么?其功能有哪些?
  7. 为什么计算机要使用反码/补码
  8. python中形参和return语句_Python-return语句-函数的形参定义
  9. 微信小程序实现客服消息自动回复(回复图片消息)
  10. 解决safari浏览器 100vh 问题