(http://savepic.net/6403421m.png) (http://savepic.net/6403421.htm) | (http://savepic.net/6391133m.png) (http://savepic.net/6391133.htm) | (http://savepic.net/6397277m.png) (http://savepic.net/6397277.htm) | (http://savepic.net/6388061m.png) (http://savepic.net/6388061.htm) |
16777215,8388607,8355839,8388479,16777087,16744319
(http://savepic.net/6382943.png) | (http://savepic.net/6389087.png) |
(http://savepic.net/6387039.png) | (http://savepic.net/6376799.png) |
$cols1= "85,262,272,1,213,57"
$cols2= "695,9,15,0,17,19"
$cols3="693,157,72,50,101,68"
$cols4="329,363,81,2,405,40"
$cols5="375,404,93,0,459,47"
SUB(capcha,$cap1, $cap2 )
STRSEPARATE($cap1, ",", $arr1)
STRSEPARATE($cap2, ",", $arr2)
$am_arr1 = 0
$am_arr2 = 0
FOR($i=0,$i<ARRSIZE ($arr1))
$am_arr1=$arr1[$i]+$am_arr1
END_CYC
FOR($i=0,$i<ARRSIZE ($arr2))
$am_arr2=$arr2[$i]+$am_arr2
END_CYC
IF($am_arr1 > $am_arr2)
FOR($i=0,$i < ARRSIZE ($arr1))
IF(($arr1[$i]!0)&($arr2[$i]!0))
arrpush($rat, $arr1[$i]/$arr2[$i])
END_IF
END_CYC
else
FOR($i=0,$i < ARRSIZE ($arr1))
IF(($arr1[$i]!0)&($arr2[$i]!0))
arrpush($rat, $arr2[$i]/$arr1[$i])
END_IF
END_CYC
END_IF
$min=$rat[0]
FOR($a=1,$a<ARRSIZE($rat))
IF($min>$rat[$a])
$min=$rat[$a]
END_IF
END_CYC
$max=$rat[0]
FOR($a=1,$a<ARRSIZE($rat))
IF($max<$rat[$a])
$max=$rat[$a]
END_IF
END_CYC
$coin= $max-$min
UNDEFINE ($arr1)
UNDEFINE ($arr2)
UNDEFINE ($rat)
END_SUB
/////////////////////////////////////////////////////
capcha ($cols1,$cols2)
print($coin)
capcha ($cols1,$cols3)
print($coin)
capcha ($cols1,$cols4)
print($coin)
capcha ($cols1,$cols5)
print($coin)
capcha ($cols2,$cols3)
print($coin)
capcha ($cols2,$cols4)
print($coin)
capcha ($cols2,$cols5)
print($coin)
capcha ($cols3,$cols4)
print($coin)
capcha ($cols3,$cols5)
print($coin)
capcha ($cols4,$cols5)
print($coin)
halt
до конца уже недописывал, сравнение результатов, итак всё ясно. 28.9888089528377
49.7352941176471
3.572794117647
4.0698529411764
16.4473221422861
39.8599520383693
44.3493205435652
3.969900990099
4.00342891432
0.0620523415978
что показывает, что в последнем вызове подпрограммы картинки совпадают больше всего. а последний вызов, это сравнение двух последних. все правильно.1.6741361379825
140.847924773022
80.2214656290532
71.7292477302205
9.8236406619386
6.0788790866632
6.0496296645752
13.7447552447553
19.0015560165975
0.368006993007
4.1803278688525
4.0833333333333
2.7853993140617
4.2468924518105
16.2364864864865
7.1978319783198
0.8187173354593
3.0057692307692
15.0373626373626
6.3848555815769
329 363 81 2 405 40
375 404 93 0 459 47
+1 +1 +1 -1 +1 +1
+1+1+1-1+1+1 = |4| = 4
Если в результате получаем 4 или 5 или 6, значит разнонаправленных не больше 1. $true = ... значения близкие, в пределах мёртвой зоны $mz
$false = ... значения отличающиеся более чем на $proc процентов
$plus = ... значения увеличиваются
$minus = ... значения уменьшаются
329 363 81 2 405 40
375 404 93 0 459 47
$plus $plus $plus $true $plus $plus
$true $true $true $true $true $true
SUB(para, $n1, $n2) //==========================================================
$true = 0
$false = 0
$plus = 0
$minus = 0
FOR($i=0, $i<6)
$e1 = $data[$n1*6+$i]
$e2 = $data[$n2*6+$i]
$d = $e1 - $e2
IF(($d < ($mz+1)) & ($d > (($mz+1)*-1)))
INC($true)
ELSE
IF($d > 0)
IF(($e1-$e1/100*$proc) > $e2)
INC($false)
ELSE
INC($minus)
END_IF
ELSE
IF(($e2-$e2/100*$proc) > $e1)
INC($false)
ELSE
INC($plus)
END_IF
END_IF
IF($false > 1)
$result = 0
$i = 10
ELSE
IF($true = 4)
$result = 1
$i = 10
END_IF
END_IF
END_IF
END_CYC
IF($i ! 10)
IF((($plus + $false) > 1) & (($minus + $false) > 1))
$result = 0
ELSE
$result = 1
END_IF
END_IF
END_SUB
$mz = 15
$proc = 40