php代码转换成python,将Python代码转换为PHP

Is there a software converter out there that can automatically convert this python code to PHP?

#!/usr/bin/python

import math

def calcNumEntropyBits(s):

if len(s) <= 0: return 0.0

symCount = {}

for c in s:

if c not in symCount: symCount[c] = 1

else: symCount[c] += 1

entropy = 0.0

for c,n in symCount.iteritems():

prob = n / float(len(s))

entropy += prob * (math.log(prob)/math.log(2))

if entropy >= 0.0: return 0.0

else: return -(entropy*len(s))

def testEntropy(s):

print "Bits of entropy in '%s' is %.2f" % (s, calcNumEntropyBits(s))

testEntropy('hello world')

testEntropy('bubba dubba')

testEntropy('aaaaaaaaaaa')

testEntropy('aaaaabaaaaa')

testEntropy('abcdefghijk')

解决方案

I'm not aware of any Python-to-PHP converter in the wild, but it should be a trivial task to port and the similarities are quite easy to spot:

function calcNumEntropyBits($s) {

if (strlen($s) <= 0) return 0.0;

$symCount = array();

foreach (str_split($s) as $c) {

if (!in_array($c,$symCount)) $symCount[$c] = 1;

else $symCount[$c] ++;

}

$entropy = 0.0;

foreach ($symCount as $c=>$n) {

$prob = $n / (float)strlen($s);

$entropy += $prob * log($prob)/log(2);

}

if ($entropy >= 0.0) return 0.0;

else return -($entropy*strlen($s));

}

function testEntropy($s):

printf("Bits of entropy in '%s' is %.2f",$s,calcNumEntropyBits($s));

testEntropy('hello world');

testEntropy('bubba dubba');

testEntropy('aaaaaaaaaaa');

testEntropy('aaaaabaaaaa');

testEntropy('abcdefghijk');

The last few lines in the first function could have also been written as a standard PHP ternary expression:

return ($entropy >= 0.0)? 0.0: -($entropy*strlen($s));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值