Practice
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 29.296875 M,其他语言58.59375 M
64bit IO Format: %lld

题目描述

How much does winning ACM depend on practice?
We assume that p, the probability that a given team will win a given contest, is related to n, the number of practice problems solved by the team prior to the contest. This relationship is modelled by the logistic formula

log(p/(1-p)) = a + bn ,

for some a and b. Your job is to find a and b such that the formula most accurately reflects a set of observed results.
Each observation consists of n and w. n is the number of practice problems solved by some team prior to a contest, and w is 1 if the team wins the contest, 0 if it does not.

Given a, b, and n the formula above may be used to compute p, the estimated probability that w = 1. The likelihood of a particular observation is p if w = 1 and 1-p if w = 0; The likelihood of a set of observations is the product of the likelihoods of the individual observations.

You are to compute the maximum likelihood estimate for a and b. That is, the values of a and b for which the likelihood of a given set of observations is maximized.

输入描述:

The input contains several test cases followed by a line contatining 0. Each test case begins with 1 < k <= 100, the number of observations that follow. Each observation consists of integers 0 <= n <= 100 and 0 <= w <= 1. The input will contain at least two distinct values of n and of w.

输出描述:

For each test case, output a single line containing a and b, rounded to four digits to the right of the decimal.
示例1

输入

复制
20
0 0
0 0
0 0
0 0
1 0
1 0
1 0
1 1
2 0
2 0
2 1
2 1
3 0
3 1
3 1
3 1
4 1
4 1
4 1
4 1
0

输出

复制
-3.1748 1.5874