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

[原创] 有趣的回文

[复制链接]
发表于 2020-3-2 16:54:27 | 显示全部楼层
dlpg070 发表于 2020-3-2 10:42
谢谢你的公式
我理解可能有误,贴出我的Mathematica 代码,请指出错误
我的结果好像接近正确,但不正确
...

$A(n)=1+sgn(n-floor(sqrt(n))^2)(floor(sqrt(n))-floor(frac{(n-floor(sqrt(n))^2)}{2}))$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-3-3 13:27:12 | 显示全部楼层

题目看懂了。
A(01)=1
A(02)=211
A(03)=32211
A(04)=4332211
A(05)=544332211
A(06)=65544332211
A(07)=7665544332211
A(08)=877665544332211
A(09)=98877665544332211
A(10)=10998877665544332211
A(11)=111010998877665544332211
A(12)=1211111010998877665544332211

点评

各项之间最好加分隔符(空格或逗号等),不然又是引发歧义 例如 n>=10  发表于 2020-3-3 14:12
是的  发表于 2020-3-3 14:09
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-3-3 14:56:21 | 显示全部楼层

改写为 c++ ,运行结果正常,但按11#公式仍 未能得正确结果
  1. int north(FILE *fp)
  2. {
  3. for (int i = 1; i <= arrcnt; i++)
  4. {
  5.         int m = (int)sqrt(i);// n
  6.         int k = i-m*m;
  7.         int a = 1 + sign(k)*(m -int( k / 2));
  8.         printf("%2d: %2d \n", i, a);
  9.         sprintf_s(str, "id=%2d: a=%3d  m=%2d k=%2d\n", i, a,m,k);
  10.         fwrite(str, 1, strlen(str), fp);
  11.         fflush(fp);
  12. }
  13. return 0;
  14. }
复制代码


输出 :带测试结果
id= 1: a=  1  m= 1 k= 0
id= 2: a=  2  m= 1 k= 1
id= 3: a=  1  m= 1 k= 2
id= 4: a=  1  m= 2 k= 0
id= 5: a=  3  m= 2 k= 1
id= 6: a=  2  m= 2 k= 2
id= 7: a=  2  m= 2 k= 3
id= 8: a=  1  m= 2 k= 4
id= 9: a=  1  m= 3 k= 0
id=10: a=  4  m= 3 k= 1
id=11: a=  3  m= 3 k= 2
id=12: a=  3  m= 3 k= 3
id=13: a=  2  m= 3 k= 4
id=14: a=  2  m= 3 k= 5
id=15: a=  1  m= 3 k= 6
id=16: a=  1  m= 4 k= 0
id=17: a=  5  m= 4 k= 1
id=18: a=  4  m= 4 k= 2
id=19: a=  4  m= 4 k= 3
id=20: a=  3  m= 4 k= 4
id=21: a=  3  m= 4 k= 5
id=22: a=  2  m= 4 k= 6
id=23: a=  2  m= 4 k= 7
id=24: a=  1  m= 4 k= 8
id=25: a=  1  m= 5 k= 0
id=26: a=  6  m= 5 k= 1
id=27: a=  5  m= 5 k= 2
id=28: a=  5  m= 5 k= 3
id=29: a=  4  m= 5 k= 4
id=30: a=  4  m= 5 k= 5
id=31: a=  3  m= 5 k= 6
id=32: a=  3  m= 5 k= 7
id=33: a=  2  m= 5 k= 8
id=34: a=  2  m= 5 k= 9
id=35: a=  1  m= 5 k=10
id=36: a=  1  m= 6 k= 0
id=37: a=  7  m= 6 k= 1
id=38: a=  6  m= 6 k= 2
id=39: a=  6  m= 6 k= 3
id=40: a=  5  m= 6 k= 4
id=41: a=  5  m= 6 k= 5
id=42: a=  4  m= 6 k= 6
id=43: a=  4  m= 6 k= 7
id=44: a=  3  m= 6 k= 8
id=45: a=  3  m= 6 k= 9
id=46: a=  2  m= 6 k=10
id=47: a=  2  m= 6 k=11
id=48: a=  1  m= 6 k=12
id=49: a=  1  m= 7 k= 0
id=50: a=  8  m= 7 k= 1
id=51: a=  7  m= 7 k= 2
id=52: a=  7  m= 7 k= 3
id=53: a=  6  m= 7 k= 4
id=54: a=  6  m= 7 k= 5
id=55: a=  5  m= 7 k= 6
id=56: a=  5  m= 7 k= 7
id=57: a=  4  m= 7 k= 8
id=58: a=  4  m= 7 k= 9
id=59: a=  3  m= 7 k=10
id=60: a=  3  m= 7 k=11
id=61: a=  2  m= 7 k=12
id=62: a=  2  m= 7 k=13
id=63: a=  1  m= 7 k=14
id=64: a=  1  m= 8 k= 0
id=65: a=  9  m= 8 k= 1
id=66: a=  8  m= 8 k= 2
id=67: a=  8  m= 8 k= 3
id=68: a=  7  m= 8 k= 4
id=69: a=  7  m= 8 k= 5
id=70: a=  6  m= 8 k= 6
id=71: a=  6  m= 8 k= 7
id=72: a=  5  m= 8 k= 8
id=73: a=  5  m= 8 k= 9
id=74: a=  4  m= 8 k=10
id=75: a=  4  m= 8 k=11
id=76: a=  3  m= 8 k=12
id=77: a=  3  m= 8 k=13
id=78: a=  2  m= 8 k=14
id=79: a=  2  m= 8 k=15
id=80: a=  1  m= 8 k=16
id=81: a=  1  m= 9 k= 0
id=82: a= 10  m= 9 k= 1
id=83: a=  9  m= 9 k= 2
id=84: a=  9  m= 9 k= 3
id=85: a=  8  m= 9 k= 4
id=86: a=  8  m= 9 k= 5
id=87: a=  7  m= 9 k= 6
id=88: a=  7  m= 9 k= 7
id=89: a=  6  m= 9 k= 8
id=90: a=  6  m= 9 k= 9
id=91: a=  5  m= 9 k=10
id=92: a=  5  m= 9 k=11
id=93: a=  4  m= 9 k=12
id=94: a=  4  m= 9 k=13
id=95: a=  3  m= 9 k=14
id=96: a=  3  m= 9 k=15
id=97: a=  2  m= 9 k=16
id=98: a=  2  m= 9 k=17
id=99: a=  1  m= 9 k=18
id=100: a=  1  m=10 k= 0

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-3-3 16:26:53 | 显示全部楼层
dlpg070 发表于 2020-3-3 14:56
改写为 c++ ,运行结果正常,但按11#公式仍 未能得正确结果

这个结果跟你一楼的不是一样么?

点评

我是在学习移植你的代码,特意命名:函数名north()  发表于 2020-3-3 16:49
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-3-3 16:44:20 | 显示全部楼层
本帖最后由 dlpg070 于 2020-3-3 16:52 编辑
northwolves 发表于 2020-3-2 16:54
$A(n)=1+sgn(n-floor(sqrt(n))^2)(floor(sqrt(n))-floor(frac{(n-floor(sqrt(n))^2)}{2}))$


11#公式正确,但论坛和mma的显示有差异,理解困难
mma代码一直没有调试成功
下面是根据c++代码改写的mma代码
运行结果正确
  1. Clear["Global`*"];
  2. a[n_]:=a[n]=Module[{m= Floor[Sqrt[n]],k=0,ret=0},
  3. k=n-m^2;
  4. ret=1+Sign[k]*(m-Floor[k/2]);
  5. ret
  6. ];
  7. Table[a[n],{n,1,100}]
复制代码


输出:
{1,2,1,1,3,2,2,1,1,4,3,3,2,2,1,1,5,4,4,3,3,2,2,1,1,6,5,5,4,4,3,3,2,2,1,1,7,6,6,5,5,4,4,3,3,2,2,1,1,8,7,7,6,6,5,5,4,4,3,3,2,2,1,1,9,8,8,7,7,6,6,5,5,4,4,3,3,2,2,1,1,10,9,9,8,8,7,7,6,6,5,5,4,4,3,3,2,2,1,1}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-3-3 19:36:26 | 显示全部楼层
王守恩 发表于 2020-3-3 13:27
题目看懂了。
A(01)=1
A(02)=211

可以合并吗?

n=1——10
\(\D A(n)=\sum_{k=1}^n\ (11k-1)×10^{2k-3}\)

n=10——100
\(\D A(n)=\sum_{k=10}^n\ (101k-1)×10^{4k-24}+908877665544332211\)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-3-3 22:07:24 | 显示全部楼层
$A(n)=( (10*n- 1) * 100 ^ (n- 1)) / 9 - (100 ^ (n- 1) - 1) / 891$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-3-4 09:12:24 | 显示全部楼层
northwolves 发表于 2020-3-3 22:07
$A(n)=( (10*n- 1) * 100 ^ (n- 1)) / 9 - (100 ^ (n- 1) - 1) / 891$

公式漂亮
10项以后对吗?
前14项结果:
{1,
211,
32211,
4332211,
544332211,
65544332211,
7665544332211,
877665544332211,
98877665544332211,
10999785746251392816050404030302020101/1000000000000000000,
111010999785746251392816050404030302020101/1000000000000000000,
1211111010999785746251392816050404030302020101/1000000000000000000,
13121211111010999785746251392816050404030302020101/1000000000000000000,
141313121211111010999785746251392816050404030302020101/1000000000000000000
}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-3-4 14:44:05 | 显示全部楼层
dlpg070 发表于 2020-3-3 14:56
改写为 c++ ,运行结果正常,但按11#公式仍 未能得正确结果

10# 11#的通项公式很好,核心是
我4#没有写出的A(n,k)
A(n,k) = 1 + sign(k)*(n -int( k / 2));  n>0 ,k=0,1,---,n-1
具有递推关系
A(n,k) 比A(n-1,k) 头部多2项 :n,n-1,
基本情况差不多说清楚了
今后将说一说为什么有趣.



补充内容 (2020-3-5 07:49):
A(n,k) = 1 + sign(k)*(n -int( k / 2));  n>0 ,k=0,1,---,2*n
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-3-6 10:31:20 | 显示全部楼层
本帖最后由 王守恩 于 2020-3-6 18:11 编辑
dlpg070 发表于 2020-3-4 14:44
10# 11#的通项公式很好,核心是
我4#没有写出的A(n,k)
A(n,k) = 1 + sign(k)*(n -int( k / 2));  n>0 ,k ...


A(n)的头部可以是这样:A(n)=\((10^{\lceil\log_{10}n\rceil}+1)*n-1\)

\(其中\lceil\log_{10}n\rceil={0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, ...} \)


后面您是怎么把她们粘在一起的,我还是看不懂。

A(n)的头部= 1, 21, 32, 43, 54, 65, 76, 87, 98, 109, 1110, 1211, 1312, 1413, 1514, 1615,
1716, 1817, 1918, 2019, 2120, 2221, 2322, 2423, 2524, \2625, 2726, 2827, 2928, ..., 9594,
9695, 9796, 9897, 9998, 10099, 101100, 102101, 103102, 104103, 105104, ...
或倒过来{....., 2928, 2827, 2726, 2625, 2524, 2423, 2322, 2221, 2120,2019, 1918, 1817,
1717, 1615, 1514, 1413, 1312, 1211, 1110,109, 98, 87, 76, 65, 54, 43, 32, 21,  1}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-4-27 12:51 , Processed in 0.268260 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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