Algorithm generates pseudorandom numbers using multiplication in varying bit lengths, suggesting efficient number generation methods.
In this paper, we show that we can generate nonrecursive n -bit pseudorandom numbers by two times ( n -bit) <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> <m:mo lspace="4.2pt">×</m:mo> </m:math> \,{×} ( n -bit) multiplication and succeeding extraction of an n -bit integer from the result of multiplication. The algorithm, which we call MmS, is described using the functions defined by <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> <m:mrow> <m:mrow> <m:msub> <m:mi>T</m:mi> <m:msup> <m:mn>2</m:mn> <m:mi>k</m:mi> </m:msup> </m:msub> <m:mo></m:mo> <m:mrow> <m:mo stretchy="false">(</m:mo> <m:mi>X</m:mi> <m:mo>,</m:mo> <m:mi>Y</m:mi> <m:mo stretchy="false">)</m:mo> </m:mrow> </m:mrow> <m:mo>=</m:mo> <m:mrow> <m:mrow> <m:mrow> <m:msup> <m:mn>2</m:mn> <m:mi>k</m:mi> </m:msup> <m:mo></m:mo> <m:mi>X</m:mi> <m:mo></m:mo> <m:mi>Y</m:mi> </m:mrow> <m:mo>-</m:mo> <m:mrow> <m:mo stretchy="false">⌊</m:mo> <m:mrow> <m:msup> <m:mn>2</m:mn> <m:mi>k</m:mi> </m:msup> <m:mo></m:mo> <m:mi>X</m:mi> <m:mo></m:mo> <m:mi>Y</m:mi> </m:mrow> <m:mo stretchy="false">⌋</m:mo> </m:mrow> </m:mrow> <m:mo>+</m:mo> <m:mn>1</m:mn> </m:mrow> </m:mrow> </m:math> {T_{2ᵏ}(X,Y)=2ᵏXY- 2ᵏXY+1} , <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> <m:mrow> <m:mrow> <m:mi>X</m:mi> <m:mo>,</m:mo> <m:mi>Y</m:mi> </m:mrow> <m:mo>∈</m:mo> <m:mrow> <m:mo stretchy="false">[</m:mo> <m:mn>1</m:mn> <m:mo>,</m:mo> <m:mn>2</m:mn> <m:mo stretchy="false">)</m:mo> </m:mrow> </m:mrow> </m:math> {X,Y∈[1,2)} , and <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> <m:mrow> <m:mrow> <m:msub> <m:mover accent="true"> <m:mi>T</m:mi> <m:mo stretchy="false">ˇ</m:mo> </m:mover> <m:msup> <m:mn>2</m:mn> <m:mi>k</m:mi> </m:msup> </m:msub> <m:mo></m:mo> <m:mrow> <m:mo stretchy="false">(</m:mo> <m:mi>X</m:mi> <m:mo stretchy="false">)</m:mo> </m:mrow> </m:mrow> <m:mo>≡</m:mo> <m:mrow> <m:msub> <m:mi>T</m:mi> <m:msup> <m:mn>2</m:mn> <m:mi>k</m:mi> </m:msup> </m:msub> <m:mo></m:mo> <m:mrow> <m:mo stretchy="false">(</m:mo> <m:mi>X</m:mi> <m:mo>,</m:mo> <m:mi>X</m:mi> <m:mo stretchy="false">)</m:mo> </m:mrow> </m:mrow> </m:mrow> </m:math> {{T}_{2ᵏ}(X)≡ T_{2ᵏ}(X,X)} . We observe and consider mathematically the condition that <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> <m:mrow> <m:msub> <m:mi>T</m:mi> <m:msup> <m:mn>2</m:mn> <m:mi>k</m:mi> </m:msup> </m:msub> <m:mo></m:mo> <m:mrow> <m:mo stretchy="false">(</m:mo> <m:mi>X</m:mi> <m:mo>,</m:mo> <m:mi>Y</m:mi> <m:mo stretchy="false">)</m:mo> </m:mrow> </m:mrow> </m:math> {T_{2ᵏ}(X,Y)} and succeeding repetition of <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> <m:mrow> <m:msub> <m:mover accent="true"> <m:mi>T</m:mi> <m:mo stretchy="false">ˇ</m:mo> </m:mover> <m:msup> <m:mn>2</m:mn> <m:mi>k</m:mi> </m:msup> </m:msub> <m:mo></m:mo> <m:mrow> <m:mo stretchy="false">(</m:mo> <m:mi>X</m:mi> <m:mo stretchy="false">)</m:mo>
No takes yet. Share an insight, caveat, or question.
Hirotake Yaguchi (2026) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: