gpt4 book ai didi

algorithm - 如何验证新加坡 FIN?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:04:09 26 4
gpt4 key购买 nike

谁能提供一种算法来验证新加坡 FIN?

我知道新加坡的 NRIC 我可以通过模 11 验证它,然后将结果与查找表进行比较,但找不到 FIN 的类似查找表。

我也不确定模 11 是否是正确的验证方法。

我知道政府以 400 美元的价格出售一种算法,但也许有人知道更便宜的方法。

C# 实现的奖励积分。

最佳答案

再次使用 PHP

function isNricValid ($theNric) {

$multiples = array( 2, 7, 6, 5, 4, 3, 2 );

if (!$theNric || $theNric == '')
{
return false;
}

if (strlen($theNric) != 9)
{
return false;
}

$total = 0;
$count = 0;
$numericNric = 0;

$first = $theNric[0];
$last = $theNric[strlen($theNric) - 1];

if ($first != 'S' && $first != 'T')
{
return false;
}

$numericNric = substr($theNric, 1, strlen($theNric) - 2);

if (!is_numeric ($numericNric)) {
return false;
}

while ($numericNric != 0)
{
$total += ($numericNric % 10) * $multiples[sizeof($multiples) - (1 + $count++)];

$numericNric /= 10;
$numericNric = floor($numericNric);
}

$outputs = '';
if (strcmp($first, "S") == 0)
{
$outputs = array( 'J', 'Z', 'I', 'H', 'G', 'F', 'E', 'D', 'C', 'B', 'A' );
}
else
{
$outputs = array( 'G', 'F', 'E', 'D', 'C', 'B', 'A', 'J', 'Z', 'I', 'H' );
}

return $last == $outputs[$total % 11];

}

function isFinValid ($fin)
{
$multiples = array( 2, 7, 6, 5, 4, 3, 2 );
if (!$fin || $fin == '')
{
return false;
}

if (strlen($fin) != 9)
{
return false;
}

$total = 0;
$count = 0;
$numericNric = 0;
$first = $fin[0];
$last = $fin[strlen($fin) - 1];

if ($first != 'F' && $first != 'G')
{
return false;
}

$numericNric = substr($fin, 1, strlen($fin) - 2);

if (!is_numeric ($numericNric)) {
return false;
}

while ($numericNric != 0)
{
$total += ($numericNric % 10) * $multiples[sizeof($multiples) - (1 + $count++)];

$numericNric /= 10;
$numericNric = floor($numericNric);
}

$outputs = array();

if (strcmp($first, 'F') == 0)
{
$outputs = array( 'X', 'W', 'U', 'T', 'R', 'Q', 'P', 'N', 'M', 'L', 'K' );
}
else
{
$outputs = array( 'R', 'Q', 'P', 'N', 'M', 'L', 'K', 'X', 'W', 'U', 'T' );
}

return $last == $outputs[$total % 11];
}

关于algorithm - 如何验证新加坡 FIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/629664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com