溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行TEC-006的數(shù)據(jù)模糊處理

發(fā)布時(shí)間:2021-10-09 09:59:55 來源:億速云 閱讀:117 作者:柒染 欄目:web開發(fā)

今天就跟大家聊聊有關(guān)如何進(jìn)行TEC-006的數(shù)據(jù)模糊處理,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

數(shù)據(jù)在用戶層要做模糊化處理,數(shù)據(jù)范圍連續(xù),沒有重合,想了一個(gè)解決方案,通過對(duì)范圍的起始位置排序用二分查找獲取模糊值區(qū)間;

數(shù)據(jù)轉(zhuǎn)換格式如下:
eg.1
50平以下(<50)
50-70平(>=50,<70)
70-90平(>=70,<90)
90-110平(>=90,<110)
110-130平(>=110,<130)
130-150平(>=130,<150)
150-200平(>=150,<200)
200平以上(>=200)
eg.2
一個(gè)月以內(nèi)(0-30天)
兩個(gè)月以內(nèi)(31-60天)
三個(gè)月以內(nèi)(61-90天)
半年以內(nèi)(91-180天)
一年以內(nèi)(181天-365天)
一年以上(365天以上)
demo:
class VlCode {
const CONSTRUCTION_AREA=[50,70,90,110,130,150,200];
const FINAL_PRICE=[100,150,200,250,300,400,500,800,1000];
const LOAN_AMOUNT=[30,50,100,150,200,250,300,400,500];
const LOAN_DATE=[30,31,60,61,90,91,180,181,365];
const LOAN_DATE_CEIL=[
'-1'=>"一個(gè)月以內(nèi)",
'1'=>"兩個(gè)月以內(nèi)",
'3'=>"三個(gè)月以內(nèi)",
'5'=>"半年以內(nèi)",
'7'=>"一年以內(nèi)",
'9'=>"一年以上"        
];
/**

  • 描述: 獲取范圍值轉(zhuǎn)義

  • @date:2018年4月9日 上午10:00:44

  • @$arr 范圍值,@$target 參考值

  • @author lwy
    */
    static public function getRanges($arr,$target,$ceil=''){
    if(empty($target)||$target<0){
    return '無';
    }
    $index=self::binarySearchAsc($arr,$target);
    if($ceil=='date'){
    $changeArr=self::LOAN_DATE_CEIL;
    return @$changeArr[$index];
    }
    $count=count($arr);
    $last=$ceil;
    if($index==-1){
    $last='以下';
    $ret=$arr[0];
    }elseif($index==$count){
    $last='以上';
    $ret=$arr[$index-1];
    }else{
    $ret=$arr[$index].'-'.$arr[$index+1];
    }
    if(empty($ceil)){
    return $ret;
    }else{
    return $ret.$last;
    }
    }
    /**

  • 描述: 獲取時(shí)間差(天)

  • @date:2018年4月9日 上午11:01:45

  • @author lwy
    /
    static public function getDays($begin,$end=''){
    $end=empty($end)?date('Y-m-d'):$end;
    $begin=empty($begin)?date('Y-m-d'):date('Y-m-d',strtotime($begin));
    $t = strtotime($end) - strtotime($begin);//拿當(dāng)前時(shí)間-開始時(shí)間 = 相差時(shí)間
    return $days = $t/(3600
    24);//此時(shí)間單位為 天
    }
    /**

  • 描述: 二分查找 升序查找區(qū)間范圍的數(shù)據(jù)

  • @date:2018年4月9日 上午10:57:51

  • @author lwy
    */
    //二分查找
    static public function binarySearchAsc(Array $arr, $target) {
    $last=count($arr);
    $low = 0;
    $high = $last - 1;
    while($low <= $high) {
    $mid = floor(($low + $high) / 2);
    $next=$mid+1;
    $pre=$mid-1;
    //#找到元素
    if($arr[$mid]==$target){
    return $mid;}elseif($arr[$mid]>$target&&$pre>=0&&$target>=@$arr[$pre]){<br/" rel="nofollow">br/>}elseif($arr[$mid]>$target&&$pre>=0&&$target>=@$arr[$pre]){<br/return $pre;
    }elseif($target>=$arr[$high]){
    return $last;
    }elseif($pre<0){
    return $pre;
    }
    //if($arr[$mid] == $target) return $mid;
    //#中元素比目標(biāo)大,查找左部
    if($arr[$mid] > $target) $high = $mid - 1;
    //#重元素比目標(biāo)小,查找右部
    if($arr[$mid] < $target) $low = $mid + 1;
    }
    //#查找失敗
    return false;
    }
    }

$arr = array(1, 3, 5, 7, 9, 11,13);
echo  VlCode::getRanges($arr,8,'平');
$date='2017-05-12';
$days=VlCode::getDays($date);
echo  VlCode::getRanges(VlCode::LOAN_DATE,$days,'date');

看完上述內(nèi)容,你們對(duì)如何進(jìn)行TEC-006的數(shù)據(jù)模糊處理有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI