code_junkie

Creating your own Tinyurl style uid

Nov 11th, 2011
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. static Random _random = new Random();
  2.  
  3. public static void main()
  4. {
  5. // Size of the key, 6
  6. HashSet<string> set = new HashSet<string>();
  7. int clashes = 0;
  8. for (int n=0;n < 1000000;n++)
  9. {
  10. StringBuilder builder = new StringBuilder();
  11.  
  12. for (int i =0;i < 7;i++)
  13. {
  14. if (_random.NextDouble() > 0.5)
  15. {
  16. builder.Append((char)_random.Next(97,123));
  17. }
  18. else
  19. {
  20. builder.Append(_random.Next(0,9).ToString());
  21. }
  22. }
  23.  
  24. if (set.Contains(builder.ToString()))
  25. {
  26. clashes++;
  27. Console.WriteLine("clash: (" +n+ ")" +builder.ToString());
  28. }
  29.  
  30. set.Add(builder.ToString());
  31. _random.Next();
  32. //Console.Write(builder.ToString());
  33. }
  34.  
  35. Console.WriteLine("Clashes: " +clashes);
  36. Console.ReadLine();
  37. }
  38.  
  39. p = ( 0.5 * ( (0.5*1/10) + (0.5*1/26) ) )^6
  40.  
  41. Id URL
  42. 1 http://google.com
  43. 2 ...
  44. ... ...
  45. 156 ...
  46. ... ...
  47.  
  48. http://site.com/1
  49. http://site.com/2
  50. ...
  51. http://site.com/2W
  52. ...
  53.  
  54. select dbo.FX_CONV (123456) -- returns "1f5n"
  55.  
  56. select dbo.FX_CONV (123457) -- returns "1f5o"
  57.  
  58. 7QDBkvCA1+B9K/U0vrQx1A
  59. 7QDBkvCA1+B9K/U0vrQx1A==
  60.  
  61. 5:$Hj:Pf4RLB9%kULj
Add Comment
Please, Sign In to add comment