找回密码
 欢迎注册
楼主: KeyTo9_Fans

[原创] 谢尔宾斯基地毯与圆的交集

  [复制链接]
发表于 2017-11-4 17:03:36 | 显示全部楼层
高斯不是有个公式计算原点圆内整数坐标点个数的么,可以利用啊
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2017-11-16 22:58:56 | 显示全部楼层
与本贴问题相关的两个数列已经被【在线整数数列百科大全】收录了,

数列编号为A293288A293289

前者是圆内小正方形个数,后者是圆上小正方形个数。

这两个数列都更新到了第$32$项,都是直接使用了Ickiverar在$38$楼提供的数据,

感谢Ickiverar、Chyanog和Wayne提供的宝贵素材:

LINKS:
Yi Yang: Table of n, a(n) for n = 0..32
Chyanog: Illustration of initial terms
Wayne, Ickiverar: The C++ code generating the sequence

其中【Table of n, a(n) for n = 0..32】的贡献者应该是Ickiverar,但是我提交的时候没写上去,所以系统就自动填了提交者的名字。

等我拿到更多素材去更新这个数列的时候,看看能否把这个地方改掉。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-11-17 11:13:28 | 显示全部楼层
KeyTo9_Fans 发表于 2017-11-16 22:58
与本贴问题相关的两个数列已经被【在线整数数列百科大全】收录了,

数列编号为A293288和A293289。


搜了下, Yi Yang总共贡献了14个数列.
---------------
插曲:  最开始搜索的时候没有加引号,一不小心,搜到了 https://oeis.org/A102241.          Yi Jing Algebra, 好神奇:http://www.yijing.co.uk ,

点评

没那么多,只贡献了$8$个,其余$6$个只是编辑了一下而已。  发表于 2017-11-18 01:27
赞!这是我见过的关于易经的最现代最认真的研究了  发表于 2017-11-17 21:32
找半天才找到:http://www.yijing.co.uk/downloads/oracle.pdf  发表于 2017-11-17 15:56
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-8-14 14:04:58 | 显示全部楼层
这个问题可以推广到三维吗?即门格海绵(Menger sponge)与球的交集。我画了几幅图
MengerMesh ball.png

补充内容 (2019-12-2 21:27):
http://www.lactamme.polytechniqu ... .5.1.D/display.html 已经有人画过这样的图了

点评

最后一个门格海绵球感觉特别适合作为太空城  发表于 2019-11-22 07:25
我只会画图,计算还得靠你们呀  发表于 2019-8-14 19:20
你可以给OEIS提交2个新数列了  发表于 2019-8-14 19:11
可以呀  发表于 2019-8-14 14:48
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-8-15 03:36:29 | 显示全部楼层
在3维的情况下,21#的担心成为现实,会有两个对顶小正方体分居球面内外,公共顶点刚好位于球面上。
也会有小正方体的中心正好位于球面上。\[x^2+y^2+z^2=9^n,xyz≠0\]总是有解的,记解数为`t_n`,不知有无现成的数列。

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-8-15 15:50:23 | 显示全部楼层
本帖最后由 chyanog 于 2019-8-15 17:59 编辑

MengerMesh_ball2.png
迭代次数,球外,球上,球内的方块的个数
{1, 0, 20, 0}
{2, 140, 216, 44}
{3, 4456, 1224, 2320}
{4, 97232, 7968, 54800}
{5, 1999432, 54456, 1146112}
{6, 40353584, 367944, 23278472}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-12-2 18:43:43 | 显示全部楼层
本帖最后由 chyanog 于 2019-12-2 19:35 编辑
chyanog 发表于 2019-8-15 15:50
迭代次数,球外,球上,球内的方块的个数
{1, 0, 20, 0}
{2, 140, 216, 44}


更新到第8项
(1), 0, 20, 0
(2), 140, 216, 44
(3), 4456, 1224, 2320
(4), 97232, 7968, 54800
(5), 1999432, 54456, 1146112
(6), 40353584, 367944, 23278472
(7), 809527216, 2444520, 468028264
(8), 16206910376, 16284576, 9376805048

代码没有根据对称性作优化,时间复杂度O(20^n),还有很大优化空间,计算到第8项需要十五六分钟。
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <time.h>

  4. #define MAX(x, y) (((x) > (y)) ? (x) : (y))
  5. #define MIN(x, y) (((x) < (y)) ? (x) : (y))

  6. unsigned __int64 in_count, out_count;

  7. void f(double x, double y, double z, int m, int n)
  8. {
  9.         double d = 2 * pow(3, -n);
  10.         if (n == 0)
  11.         {
  12.                 double r = pow(3, -m);
  13.                 double d1, d2, d3, d4, d5, d6, d7, d8;
  14.                 d1 = pow(x + r, 2) + pow(y + r, 2) + pow(z + r, 2);
  15.                 d2 = pow(x + r, 2) + pow(y + r, 2) + pow(z - r, 2);
  16.                 d3 = pow(x + r, 2) + pow(y - r, 2) + pow(z + r, 2);
  17.                 d4 = pow(x + r, 2) + pow(y - r, 2) + pow(z - r, 2);
  18.                 d5 = pow(x - r, 2) + pow(y + r, 2) + pow(z + r, 2);
  19.                 d6 = pow(x - r, 2) + pow(y + r, 2) + pow(z - r, 2);
  20.                 d7 = pow(x - r, 2) + pow(y - r, 2) + pow(z + r, 2);
  21.                 d8 = pow(x - r, 2) + pow(y - r, 2) + pow(z - r, 2);
  22.                 if (MAX(MAX(MAX(MAX(MAX(MAX(MAX(d1, d2), d3), d4), d5), d6), d7), d8) < 1)
  23.                 {
  24.                         in_count++;
  25.                 }
  26.                 if (MIN(MIN(MIN(MIN(MIN(MIN(MIN(d1, d2), d3), d4), d5), d6), d7), d8) > 1)
  27.                 {
  28.                         out_count++;
  29.                 }
  30.         }
  31.         else
  32.         {
  33.                 f(x - d, y - d, z - d, m, n - 1);
  34.                 f(x - d, y - d, z, m, n - 1);
  35.                 f(x - d, y - d, z + d, m, n - 1);
  36.                 f(x - d, y, z - d, m, n - 1);
  37.                 f(x - d, y, z + d, m, n - 1);
  38.                 f(x - d, y + d, z - d, m, n - 1);
  39.                 f(x - d, y + d, z, m, n - 1);
  40.                 f(x - d, y + d, z + d, m, n - 1);
  41.                 f(x, y - d, z - d, m, n - 1);
  42.                 f(x, y - d, z + d, m, n - 1);
  43.                 f(x, y + d, z - d, m, n - 1);
  44.                 f(x, y + d, z + d, m, n - 1);
  45.                 f(x + d, y - d, z - d, m, n - 1);
  46.                 f(x + d, y - d, z, m, n - 1);
  47.                 f(x + d, y - d, z + d, m, n - 1);
  48.                 f(x + d, y, z - d, m, n - 1);
  49.                 f(x + d, y, z + d, m, n - 1);
  50.                 f(x + d, y + d, z - d, m, n - 1);
  51.                 f(x + d, y + d, z, m, n - 1);
  52.                 f(x + d, y + d, z + d, m, n - 1);
  53.         }
  54. }

  55. int main()
  56. {
  57.         clock_t t0 = clock();
  58.         for (int i = 1; i <= 6; i++)
  59.         {
  60.                 in_count = 0;
  61.                 out_count = 0;
  62.                 f(0, 0, 0, i, i);
  63.                 printf("(%d), %llu, %llu, %llu\n", i, out_count, (__int64)pow(20, i) - out_count - in_count, in_count);
  64.         }
  65.         printf("Elapsed time %0.4fs\n", (clock() - t0) / 1000.0);
  66.         return 0;
  67. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-12-5 22:58:09 | 显示全部楼层
嗯?又被挖出来了。
需要我写用于三维的代码吗

点评

非常需要呀。  发表于 2019-12-6 00:14
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-12-6 07:33:36 来自手机 | 显示全部楼层
这个序列会需要更多数据
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-12-8 09:59:41 | 显示全部楼层

评分

参与人数 1威望 +6 金币 +6 贡献 +6 经验 +6 鲜花 +6 收起 理由
wayne + 6 + 6 + 6 + 6 + 6 赞一个!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-3-29 20:40 , Processed in 0.063264 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表