2 research outputs found

    Efficient generation of random derangements with the expected distribution of cycle lengths

    Full text link
    We show how to generate random derangements efficiently by two different techniques: random restricted transpositions and sequential importance sampling. The algorithm employing restricted transpositions can also be used to generate random fixed-point-free involutions only, a.k.a. random perfect matchings on the complete graph. Our data indicate that the algorithms generate random samples with the expected distribution of cycle lengths, which we derive, and for relatively small samples, which can actually be very large in absolute numbers, we argue that they generate samples indistinguishable from the uniform distribution. Both algorithms are simple to understand and implement and possess a performance comparable to or better than those of currently known methods. Simulations suggest that the mixing time of the algorithm based on random restricted transpositions (in the total variance distance with respect to the distribution of cycle lengths) is O(nalogn2)O(n^{a}\log{n}^{2}) with a12a \simeq \frac{1}{2} and nn the length of the derangement. We prove that the sequential importance sampling algorithm generates random derangements in O(n)O(n) time with probability O(1/n)O(1/n) of failing.Comment: This version corrected and updated; 14 pages, 2 algorithms, 2 tables, 4 figure

    A comparison of SW/HW implementations of stream cipher encoders

    Get PDF
    In this paper, a new method of stream encoding and decoding is presented. It is developed on the basis of a derangement generator. Stream cipher D has been compared with other stream ciphers – E0, W7 and Phelix. Encoding and decoding algorithms have been implemented in C++ and VHDL programming languages. FPGA synthesis data has been reported for Spartan 3E and Virtex 4 devices from Xilinx. The hardware solution has been tested on the Digilent Nexys 2 500K board. Subsequently, comparative studies have been conducted for software and hardware coders, taking into account average coding time and average throughput for 16 input data files of different sizes. Conclusions resulting from the research are derived
    corecore