返回题解分享
讨论 / 题解分享/ 帖子详情

01 串的熵(结果填空) - 题解

#include<bits/stdc++.h>
using namespace std;
const int N = 23333333;
 double num = 11625907.5798;
 double E = 1e-4;
int ans;
int main()
{
	int l = 1, r = N / 2;
	while (l <= r)
	{
		int mid = (l + r) >> 1;
		int y = N - mid;
		double s = -1.0 * y * y / N * log2(1.0 * y / N) - 1.0 * mid * mid / N * log2(1.0 * mid / N);
		if (abs(s - num) <= E)
		{
			cout << mid;
			break;
		}
		else
		{
			if (s > num) r--;
			else if (s < num) l++;
		}
	}
	return 0;
}
0 回复 0 转发 0 喜欢 3 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!