在iOS中实现康托配对功能

pbe*_*sch 2 mapping math square-root ios

我在 2 年前编写的 Java 中实现了Cantor 配对函数。现在我更多地转向 iOS 我需要在 Objective-C 中做同样的事情。

问题是,至少从我的角度来看,在 Java 中我必须实现一个我自己做的BigSqrt类。因为理论上我现在可以配对任何大小的数字。

因为我是 iOS 新手,所以我真的不知道我是否必须为 Objective-C 再次实现所有东西,或者是否已经实现了一些东西。如果是这样,有人能给我一个提示,从哪里开始为Objective-C 中的任何大小的“整数”实现康托配对函数

谢谢

Pra*_*ogg 6

我用它来在 tableview 单元格上设置标签:

NSUInteger cantorPair(NSIndexPath *indexPath)
{
    NSUInteger x = indexPath.section;
    NSUInteger y = indexPath.row;
    return ((x + y) * (x + y + 1)) / 2 + y;
}


NSIndexPath *reverseCantorPair(NSUInteger z)
{
    NSUInteger t = floor((-1.0f + sqrt(1.0f + 8.0f * z))/2.0f);
    NSUInteger x = t * (t + 3) / 2 - z;
    NSUInteger y = z - t * (t + 1) / 2;
    return [NSIndexPath indexPathForRow:y inSection:x];
}
Run Code Online (Sandbox Code Playgroud)