Given a set S of n points in the plane and an angle θ, a set of b + 1 parallel lines l0,l1,…,lb of slope θ (b is fixed) is called a θ-cut of S if l0,l1,…,lb are equally spaced and all the points of S lie between l0 and lb. The regions between two consecutive lines are called buckets. In this paper we consider the problem of finding an optimal θ-cut such that points are distributed into b buckets most uniformly, in other words, such that the maximum number of points to be included in one bucket is minimized. Comer and O’Donnell considered the problem under a constraint that l0 and lb are two supporting lines of S and presented an algorithm which runs in O(bn2 log bn) time and O(n2 + bn) space. In this paper we present two linear-space algorithm for the problem based on duality transformation. One runs in O(n2 + K log n + bn) time, where K is the number of intersections in the transformed plane. It is shown that K = O(n2 + bn). The other is advantageous if b < √n and runs in O(b0.610n1.695+bn+K log n) time. Those are improvement of Comer and O’Donnell’s algorithm both in time and space complexities. We also show that our algorithm can be extended to the case of buckets in the form of two-dimensional arrays. Then, we extend our algorithm so as to solve the unconstrained version of the problem (l0 and lb may not be supporting lines of S) in polynomial time. First we consider the one-dimensional case and then apply the idea to the two-dimensional case. Especially, the one-dimensional case is important from a standpoint of application to hashing. The problem we consider is as follows: Given a set of n real numbers x0, x1, …, xn-1 (we assume that they are sorted and x0 = 0 and zn-1 = 1 without loss of generality). Consider a hash function of the form (Formula presented.) mod m, where we assume that (Formula presented.) and K and m are given integers. It is easily seen that the hash function is more flexible than the ordinary form h(x) = [K • x] mod m since the latter hash function corresponds to the one in which L and w are fixed to be 0 and l/K, respectively.