数 的规律

[复制链接]
查看11 | 回复5 | 2008-10-1 20:40:30 | 显示全部楼层 |阅读模式
22 43 64 86 107 128 150171 192 214235256278
这组数有什么规律?
请写出函数
/*问题背景:*/

Rijndael算法为对称加密,但加密后的字符串的最后出现“=”,且呈现一定规律。“=”在一些特殊应用中需要除掉,如作为Url参数等。等号出现规律如下:

加密后字符串长度:24 44 64 88 108 128 152 172 192 216 236 256 280
“=”在字符串最后出现的次数:2102 10
2 1 0 2 1 0 2

解决方法:加密时删除最后的“=”,解密时首先添加“=”,然后解密,否则字符串无法还原。参考网友的递增函数,最终解决此问题。
/*VS2005下部分算法*/

#region 对称解密时修正字符串



private static string GetReviseString(string needReviseStr)

{

int Length = needReviseStr.Length;

for (int i = 1; i < 99; i++)

{

if (Length == 1 + i * 21 + (i - 1) / 3)

{

if (i % 3 == 1)

needReviseStr += "==";

else if (i % 3 == 2)

needReviseStr += "=";

break;

}

}

return needReviseStr;

}

#endr

回复

使用道具 举报

千问 | 2008-10-1 20:40:30 | 显示全部楼层
F( X ) = 1 + X * 21 + [ ( X - 1 ) / 3 ]式中,[ ]表示括号中数的整数部队分,如:[1.2] = 1;[5.9] = 5;[ 0 ] = 0;[0.001] = 0。。。。。。...
回复

使用道具 举报

千问 | 2008-10-1 20:40:30 | 显示全部楼层
An=64(n-3)/3+64 n=3k+3(k是非负整数)An=64(n-2)/3+43 n=3k+2(k是非负整数)An=64(n-1)/3+22 n=3k+1(k是非负整数)...
回复

使用道具 举报

千问 | 2008-10-1 20:40:30 | 显示全部楼层
没有自变量阿 列个数列吧 a(3n+1)=22+64n;a(3n+2)=a(3n+1)+21;a(3n+3)=a(3n+2)+22...
回复

使用道具 举报

千问 | 2008-10-1 20:40:30 | 显示全部楼层
a(n)= 22+64(n-1) n=3k+1 a(n)= 43+64(n-1) n=3k+2 a(n)= 64+64(n-1) n=3k+3...
回复

使用道具 举报

千问 | 2008-10-1 20:40:30 | 显示全部楼层
22 +2143 +2164 +22 86 +21 107 +21 128 +22 150 +21 171 +21 192 +22 214 +21 235 +21 256 +22 278...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行