KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Updated with newer answer and better test Let's say I have the number 382 which is 101111110. How could I randomly turn a bit which is not 0 to 0? The why; Since people ask me why, I simply need to do this, removing a bit from an integer. based on the answer here is the result(working one) I ran this using System; using System.Collections.Generic; using System.Collections; using System.Linq; using System.Diagnostics; namespace ConsoleApplication1 { class Program { static Random random; static void Main(string[] args) { Stopwatch sw; int[] test = new int[10] { 382, 256, 1, 257, 999, 555, 412, 341, 682, 951 }; random = new Random(42); for (int j = 0; j < 10; j++) { sw = Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) Perturb(test[j]); sw.Stop(); Console.WriteLine("Perturb " + sw.Elapsed.TotalSeconds.ToString("0.#######") + " seconds for " + test[j].ToString()); Debug.WriteLine("> Perturb " + sw.Elapsed.TotalSeconds.ToString("0.#######") + " seconds for " + test[j].ToString() + " "); } random = new Random(42); for (int j = 0; j < 10; j++) { sw = Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) FastPerturb(test[j]); sw.Stop(); Console.WriteLine("FastPerturb " + sw.Elapsed.TotalSeconds.ToString("0.#######") + " seconds for " + test[j].ToString()); Debug.WriteLine("> FastPerturb " + sw.Elapsed.TotalSeconds.ToString("0.#######") + " seconds for " + test[j].ToString() + " "); } random = new Random(42); for (int j = 0; j < 10; j++) { sw = Stopwatch.StartNe
Tags (comma-separated)
Save Edits
Cancel