Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- public class Program
- {
- public static void Main()
- {
- Console.WriteLine("Hello World");
- var rnd = new ExponentialRandom();
- var len = 16;
- var l1 = len / 2;
- var l2 = len - l1;
- Console.WriteLine(" L1 "+l1+ " L2 "+l2 );
- var nu = CreateANumber(rnd, l1 , l2 );
- Console.WriteLine("0123456789abcdef" );
- Console.WriteLine("ea2345c7891b6d0f" );
- Console.WriteLine("0123012301230123" );
- Console.WriteLine(nu);
- var a = 10;
- var b = 11;
- var c = 12;
- var d = 13;
- var e = 14;
- var f = 15;
- var pos = new int[16] {
- e,
- a,
- 2,
- 3,
- 4,
- 5,
- c,
- 7,
- 8,
- 9,
- 1,
- b,
- 6,
- d,
- 0,
- f
- };
- var nun = "0123456789123456";
- var newnu = new System.Text.StringBuilder();
- for(var i = 0; i <16; i++ ) {
- newnu.Append(nun.Substring(pos[i],1));
- }
- Console.WriteLine(newnu);
- }
- public static long CreateANumber(ExponentialRandom rnd, int l1, int l2)
- {
- var first = rnd.GetRandom(l1);
- var second = rnd.GetRandom(l2);
- Console.WriteLine(" first 01234567 second 01234567");
- Console.WriteLine(" first "+first+ " second "+second );
- Console.WriteLine(" L1 "+l1+ " L2 "+l2 );
- return (long)(first * Math.Pow(10, l2) + second);
- }
- }
- public class MyUintRandom
- {
- private static System.Random _rnd = new System.Random();
- public MyUintRandom(System.Random rnd)
- {
- _rnd = rnd;
- }
- public uint GetRandom(uint max)
- {
- var middle = (int) max / 2;
- var first = _rnd.Next(middle);
- var second = _rnd.Next(middle);
- return (uint) (first + second);
- }
- }
- public class ExponentialRandom
- {
- private static System.Random _rnd;
- private static MyUintRandom _myRnd;
- public ExponentialRandom()
- : this(new System.Random())
- {
- }
- public ExponentialRandom(System.Random rnd)
- {
- _rnd = rnd;
- _myRnd = new MyUintRandom(_rnd);
- }
- public uint GetRandom(uint exp)
- {
- var maxValue = (uint) Math.Pow(10, exp);
- return _myRnd.GetRandom(maxValue);
- }
- public int GetRandom(int exp)
- {
- var maxValue = (int) Math.Pow(10, exp);
- return _rnd.Next(maxValue);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement