Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Main 5.4
//Rextester.Program.Main is the entry point for your code. Don't change it. //Compiler version 4.0.30319.17929 for Microsoft (R) .NET Framework 4.5 using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using ShuffleExtension; using System.Threading; using System.Data; namespace Rextester { public class Program { public int ratio1; public int ratio2; public int ratio3; public int num1, num2, num3; public static void Main(String[] args){ //makeDivQ(500,999,10,99); //addLineBreak(30,2108); //makeDivQ(1000,9999,1,9); //makeDivQ(10,99,5,9); //keAlgebra(); //makeSubQ2by2(10,100,10,100); //makeFracQ(); //makeDivQ(10,99,2,9); //makeDeciQ(); //addSub3Q(); //makeMultQ(2,10,2,10); /* for (int i =1; i<100; i++) { //int a = Rand.Next(1,100); //int e = Rand.Next(-3,4); //Console.WriteLine(" \\task {0}^{{{1}}}=",a,e); //Console.WriteLine(" \\task \\sqrt{{{0}}}=",a*a); Console.WriteLine(" \\task \\mathmakebox[1cm][r]{{{0}:}} \\underline{{\\hspace{{8cm}}}}",i); }*/ } public static void Reversal() { for (int a = 0; a<10;a++){ for (int b = 0; b<10;b++){ for (int c = 0; c<10;c++){ for (int d = 0; d<10;d++){ double n = 9; if ((n*1000*a+n*100*b+n*10*c+n*d)==(1000*d+100*c+10*b+a)) { Console.WriteLine(a+""+b+""+c+""+d); } } } } } } public static int Tens(){ int rand = Rand.Next(0,2); if (rand==0) { return 10; } else return 100; } public static void addSub3Q() { string title = "Addition \\& Subtraction (3 term) (2)"; List<string> addsubQ = new List<string>(); DataTable dt = new DataTable(); int n1, n2, n3; for (int k=0; k<9000; k++){ int[] n = new int[3]; n[0] = Rand.Next(101,1000); n[1] = Rand.Next(11,1000); n[2] = Rand.Next(11,1000); int[] op = new int[2]; op[0] = Rand.Next(0,2); op[1] = Rand.Next(0,2); string[] operand = new string[2]; operand[0] = "+"; operand[1] = "-"; int result; if (n[0]-n[1]>=0&& (n[0]-n[1])-n[2]>=0 && (n[0]+n[1]+n[2]<1000) && addsubQ.Count()<300){ result = Convert.ToInt32(dt.Compute(n[0]+operand[op[0]]+n[1]+operand[op[1]]+n[2], null)); addsubQ.Add(" \\item \\(\\mathmakebox[3.0cm][r]{"+n[0]+operand[op[0]]+n[1]+operand[op[1]]+n[2]+"}=\\underline{\\hspace{2cm}}\\)"); //Console.WriteLine(result); } } //Console.WriteLine(addsubQ.Count()); //addsubQ.Shuffle(); PrintArithmetic(addsubQ, title); } public static void addSubQ() { string title = "Addition \\& Subtraction (1)"; List<string> addQ = new List<string>(); for (int k=0; k<2; k++){ for (int i=10; i<=99; i++){ for (int j=10; j<=99; j++){ if (i+j<100) addQ.Add(" \\item \\(\\mathmakebox[1.5cm][r]{"+i+"+"+j+"}=\\underline{\\hspace{2cm}}\\)"); //\\mathmakebox[1.45cm][r]{ } } } List<string> subQ = new List<string>(); for (int k=0; k<2; k++){ for (int i=10; i<=99; i++){ for (int j=2; j<=99; j++){ if (i>j && i%10>j%10){subQ.Add(" \\item \\(\\mathmakebox[1.5cm][r]{"+i+"-"+j+"}=\\underline{\\hspace{2cm}}\\)");} } } } List<string> questions = new List<string>(); //Console.WriteLine(addQ.Count()); //Console.WriteLine(subQ.Count()); addQ.Shuffle(); subQ.Shuffle(); questions.AddRange(addQ); questions.AddRange(subQ); questions.Shuffle(); //PrintArithmetic(questions, title); } public static void multDivQ() { string title = "Multplication \\& Division (1)"; List<string> multQ = new List<string>(); DataTable dt = new DataTable(); for (int k=0; k<4; k++){ for (int i=2; i<=9; i++){ for (int j=2; j<=9; j++){ if (multQ.Count()<200) multQ.Add(" \\item \\(\\mathmakebox[1.45cm][r]{"+i+"\\times"+j+"}=\\underline{\\hspace{2cm}}\\)"); //\\mathmakebox[1.45cm][r]{ } } } List<string> divQ = new List<string>(); for (int k=0; k<4; k++){ for (int i=10; i<=100; i++){ for (int j=2; j<=9; j++){ if (divQ.Count()<200 && i>j && i%j==0 &&i/j<10){divQ.Add(" \\item \\(\\mathmakebox[1.45cm][r]{"+i+"\\div"+j+"}=\\underline{\\hspace{2cm}}\\)");} } } } List<string> questions = new List<string>(); //Console.WriteLine(multQ.Count()); //Console.WriteLine(divQ.Count()); questions.AddRange(multQ); questions.AddRange(divQ); questions.Shuffle(); PrintArithmetic(questions, title); } public static void makeMultQ(int lower1, int upper1, int lower2, int upper2) { string title = "Multplication (1)"; List<string> questions = new List<string>(); for (int k=0; k<12; k++){ for (int i=lower1; i<=upper1; i++){ for (int j=lower2; j<=upper2; j++){ questions.Add(" \\item \\("+i+"\\times"+j+"=\\underline{\\hspace{2cm}}\\)"); //\\mathmakebox[1.45cm][r]{ } } } questions.Shuffle(); PrintArithmetic(questions, title); } public static void makeMultQ3by1() { string title = "Multplication (3 by 1 Digits)"; List<string> questions = new List<string>(); for (int k=0; k<300; k++){ int i = Rand.Next(101,1000); int j = Rand.Next(11,100); i = Rand.Next(101,1000); i = Rand.Next(101,1000); j = Rand.Next(2,10); j = Rand.Next(2,10); questions.Add(" \\item \\("+i+"\\times"+j+"=\\underline{\\hspace{2cm}}\\)"); //\\mathmakebox[1.45cm][r]{ } questions.Shuffle(); PrintArithmetic(questions, title); //Console.WriteLine(questions.Count()); } public static void makeDivQ(int lower1, int upper1, int lower2, int upper2) { string title = "Division (2 by 1 digits) General"; List<string> questions = new List<string>(); for (int k=0; k<4; k++){ for (int i=lower1; i<=upper1; i++){ for (int j=lower2; j<=upper2; j++){ if (i>j){questions.Add(" \\item \\(\\mathmakebox[1.45cm][r]{"+i+"\\div"+j+"}=\\underline{\\hspace{2cm}}\\)");} } } } questions.Shuffle(); PrintArithmetic(questions, title); } public static void makeDivQ3by2(int lower1, int upper1, int lower2, int upper2) { string title = "Division (2 by 1 digits) General"; List<string> questions = new List<string>(); for (int k=0; k<4; k++){ for (int i=lower1; i<=upper1; i++){ for (int j=lower2; j<=upper2; j++){ if (i>j){questions.Add(" \\item \\(\\mathmakebox[1.45cm][r]{"+i+"\\div"+j+"}=\\underline{\\hspace{2cm}}\\)");} } } } questions.Shuffle(); PrintArithmetic(questions, title); } public static void makeDeciQ(){ string title = "Decimal Arithmetic General"; // Division List<string> divQ = new List<string>(); for (int i=0; i<6500; i++) { int tens = Tens(); double argument = Math.Truncate(Rand.NextD(1.0,99.99)*tens)/tens; decimal num1 = Rand.Next(2,100); int dividend = Rand.Next(2,1000); decimal result = dividend/num1; int count = BitConverter.GetBytes(decimal.GetBits(result)[3])[2]; //Console.WriteLine(count); if(count<4 && divQ.Count()<120) { //Console.WriteLine("{0}/{1}={2}", dividend,num1, dividend/num1); divQ.Add(" \\item \\(\\mathmakebox[3cm][r]{"+dividend+"\\div"+num1+"}=\\underline{\\hspace{2cm}}\\)"); } } //Multiplication List<string> multQ = new List<string>(); for (int i=0; i<120; i++) { double number = Rand.NextD(1.0,99.99); int hund; double num1; if (number>=10) { num1 = Math.Truncate(number*10)/10; hund = 10; } else { num1 = Math.Truncate(number*100)/100; hund = 10; } double num2 = Math.Truncate(Rand.NextD(2,hund)*hund)/hund; double result = num1*num2; if ( (Math.Floor(num1)!=num1 || Math.Floor(num2)!=num2) && multQ.Count()<120) { multQ.Add(" \\item \\(\\mathmakebox[3cm][r]{"+num1+"\\times"+num2+"}=\\underline{\\hspace{2cm}}\\)"); } } //Add List<string> addQ = new List<string>(); for (int i=0; i<120; i++) { double number = Rand.NextD(1.0,99.99); int hund = Tens(); double num1; if (number>=10) { num1 = Math.Truncate(number*10)/10; //hund = 100; } else { num1 = Math.Truncate(number*100)/100; //hund = 10; } double num2 = Math.Truncate(Rand.NextD(2,hund)*hund)/hund; double result = num1+num2; addQ.Add(" \\item \\(\\mathmakebox[3cm][r]{"+num1+"+"+num2+"}=\\underline{\\hspace{2cm}}\\)"); } //Subtract List<string> subQ = new List<string>(); for (int i=0; i<300; i++) { double number = Rand.NextD(1.0,99.99); int hund = Tens(); double num1; if (number>=10) { num1 = Math.Truncate(number*10)/10; //hund = 100; } else { num1 = Math.Truncate(number*100)/100; //hund = 10; } double num2 = Math.Truncate(Rand.NextD(2,hund)*hund)/hund; if(num1>num2) { double result = num1-num2; subQ.Add(" \\item \\(\\mathmakebox[3cm][r]{"+num1+"+"+num2+"}=\\underline{\\hspace{2cm}}\\)"); } } List<string> questions = new List<string>(); questions.AddRange(addQ); questions.AddRange(subQ); questions.AddRange(multQ); questions.AddRange(divQ); questions.Shuffle(); PrintArithmetic(questions,title); } /*public static void makeDeciQ(double upper1) { string title = "Division (2 by 1 digits) General"; List<string> addquestions = new List<string>(); List<string> subquestions = new List<string>(); List<string> multquestions = new List<string>(); List<string> divquestions = new List<string>(); string[] op = new string[4] {"+", "-", "\\times", "\\div"}; for (int i=1; i<=upper1; i++){ int operand = Rand.Next(1,4); double[] num = new double[2] {Math.Truncate(Rand.NextD(1.0,99.99)*100)/100, Rand.Next(2,999)}; decimal num1 = Convert.ToDecimal(num[1])); //if (operand==2){questions.Add(" \\item \\(\\mathmakebox[1.45cm][r]{"+num[0]+op[operand]+num[1]+"}=\\underline{\\hspace{2cm}}\\)");} if (operand==4 && num[2]%num1==0){questions.Add(" \\item \\(\\mathmakebox[1.45cm][r]{"+num[0]+op[operand]+num[1]+"}=\\underline{\\hspace{2cm}}\\)");} //else if (operand==1) {questions.Add(" \\item \\(\\mathmakebox[1.45cm][r]{"+num[0]+op[operand]+num[1]+"}=\\underline{\\hspace{2cm}}\\)");} //else if (operand==3) {questions.Add(" \\item \\(\\mathmakebox[1.45cm][r]{"+num[0]+op[operand]+num[1]+"}=\\underline{\\hspace{2cm}}\\)");} } //questions.Shuffle(); //PrintArithmetic(questions, title); }*/ public static void makeSubQ2by2(int lower1, int upper1, int lower2, int upper2){ string title = "Subtraction (2 by 2 Digits)"; string[] latex = new string[] {"\\fontsize{12pt}{16pt}\\selectfont", " \\setlength\\itemsep{2em}"}; string[] op = new string[2] {"(", ")("}; string end =")=\\)"; List<string> questions = new List<string>(); for (int i=lower1; i<=upper1; i++){ //for (int i=10; i<100;i++){ for (int j=lower2; j<=upper2; j++){ //for (int j=10; j<100;j++){ if (i!=j && i+j<100){questions.Add(" \\item \\(\\mathmakebox[1.45cm][r]{"+i+"-"+j+"}=\\underline{\\hspace{2cm}}\\)");} /*if (i>j) { questions.Add(" \\item \\("+i+"-"+j+"=\\)"); }*/ } } questions.Shuffle(); //Console.WriteLine(questions.Count()); PrintArithmetic(questions, title); /*for (int i=0; i<questions.Count(); i++){ if(i==0){ Console.WriteLine("\\begin{figure}[ht!]"); Console.WriteLine("\\vspace{-23mm}\\hspace*{-23mm}\\includegraphics[scale=0.9]{Logo.jpg}"); Console.WriteLine("\\end{figure}"); Console.WriteLine(); Console.WriteLine("\\vspace{-15mm}\\begingroup"); Console.WriteLine("\\centering"); Console.WriteLine("\\LARGE "+title+" \\\\[0.5em]"); //Console.WriteLine("\\large Promatics Education Centre\\\\[1.5em]"); Console.WriteLine("\\endgroup"); Console.WriteLine(); Console.WriteLine(latex[0]); Console.WriteLine("\\textbf{Exercise "+(i/30+1)+". "+exerciseTitle+".}\\\\"); Console.WriteLine("\\begin{multicols}{2}"); Console.WriteLine(" \\begin{enumerate}[label=\\arabic*)]"); Console.WriteLine(latex[1]); } Console.WriteLine(questions[i]); if (i!=0 && (i+1)%30==0){ Console.WriteLine("\\end{enumerate}"); Console.WriteLine("\\end{multicols}"); Console.WriteLine(); Console.WriteLine("\\pagebreak[4]"); Console.WriteLine(); Console.WriteLine("\\begin{figure}[ht!]"); Console.WriteLine("\\vspace{-23mm}\\hspace*{-23mm}\\includegraphics[scale=0.9]{Logo.jpg}"); Console.WriteLine("\\end{figure}"); Console.WriteLine(); Console.WriteLine("\\vspace{-15mm}\\begingroup"); Console.WriteLine("\\centering"); Console.WriteLine("\\LARGE "+title+" \\\\[0.5em]"); //Console.WriteLine("\\large Promatics Education Centre\\\\[1.5em]"); Console.WriteLine("\\endgroup"); Console.WriteLine(); Console.WriteLine(latex[0]); Console.WriteLine("\\textbf{Exercise "+((i+30)/30+1)+". "+exerciseTitle+".}\\\\"); Console.WriteLine("\\begin{multicols}{2}"); Console.WriteLine(" \\begin{enumerate}[label=\\arabic*)]"); Console.WriteLine(latex[1]); } }*/ } public static void makeAlg(){ int[] n = new int[10]; for (int j=0; j<50; j++) { for (int i =0; i<n.Length; i++){ n[i] = Rand.Next(1,10); } char[] op = new char[] {'+','-'}; int x = Rand.Next(0,2); int y = Rand.Next(0,2); int z = Rand.Next(0,2); Console.WriteLine("\\(\\dfrac{{{7}(x{4}{0})}}{{{1}}}{6}\\dfrac{{{8}(x{5}{2})}}{{{3}}}=\\)\\\\",n[0],n[1],n[2],n[3],op[x],op[y],op[z],n[4],n[5]); } } public static void makeQ(int lower1, int upper1, int lower2, int upper2){ for (int i=lower1; i<=upper1; i+=9){ for (int j=lower2; j<=upper2; j+=9){ Console.WriteLine(" \\item \\("+i+"\\operation"+j+"=\\)"); } } } public static void makeFracQ(){ string title = "Algebra Simplification Introduction"; string exerciseTitle = "Simplify the algebraic expressions"; int m=0; int i_final=30000; int incre= 0; string[] latex = new string[] {"\\fontsize{12pt}{16pt}\\selectfont", " \\setlength\\itemsep{2em}"}; string mathbox = "\\mathmakebox[1.45cm][r]{"; string[] op = new string[2] {"(", ")("}; string end =")=\\)"; List<string> questions = new List<string>(); //for (int i=lower1; i<=upper1; i+=9){ for (int i=1; i<100;i++){ //for (int j=lower2; j<=upper2; j+=9){ for (int j=10; j<100;j++){ int num1 = Rand.Next(1,10); int num2 = Rand.Next(1,10); int denom1 = Rand.Next(2,10); int denom2 = Rand.Next(2,10); int mixed1 = Rand.Next(0,10); int mixed2 = Rand.Next(0,10); if (num1!=denom1 && num2!=denom1 && num1<denom1 && num2<denom1){questions.Add(" \\item \\("+mixed1+"\\dfrac{"+num1+"}{"+denom1+"}+"+mixed2+"\\dfrac{"+num2+"}{"+denom1+"}=\\underline{\\hspace{2cm}}\\)");} /*if (i>j) { questions.Add(" \\item \\("+i+"-"+j+"=\\)"); }*/ } } questions.Shuffle(); //Console.WriteLine(questions.Count()); for (int i=0; i<questions.Count(); i++){ if(i==0){ Console.WriteLine("\\begin{figure}[ht!]"); Console.WriteLine("\\vspace{-23mm}\\hspace*{-23mm}\\includegraphics[scale=0.9]{Logo.jpg}"); Console.WriteLine("\\end{figure}"); Console.WriteLine(); Console.WriteLine("\\vspace{-15mm}\\begingroup"); Console.WriteLine("\\centering"); Console.WriteLine("\\LARGE "+title+" \\\\[0.5em]"); //Console.WriteLine("\\large Promatics Education Centre\\\\[1.5em]"); Console.WriteLine("\\endgroup"); Console.WriteLine(); Console.WriteLine(latex[0]); Console.WriteLine("\\textbf{Exercise "+(i/30+1)+". "+exerciseTitle+".}\\\\"); Console.WriteLine("\\begin{multicols}{2}"); Console.WriteLine(" \\begin{enumerate}[label=\\arabic*)]"); Console.WriteLine(latex[1]); } Console.WriteLine(questions[i]); if (i!=0 && (i+1)%30==0){ Console.WriteLine("\\end{enumerate}"); Console.WriteLine("\\end{multicols}"); Console.WriteLine(); Console.WriteLine("\\pagebreak[4]"); Console.WriteLine(); Console.WriteLine("\\begin{figure}[ht!]"); Console.WriteLine("\\vspace{-23mm}\\hspace*{-23mm}\\includegraphics[scale=0.9]{Logo.jpg}"); Console.WriteLine("\\end{figure}"); Console.WriteLine(); Console.WriteLine("\\vspace{-15mm}\\begingroup"); Console.WriteLine("\\centering"); Console.WriteLine("\\LARGE "+title+" \\\\[0.5em]"); //Console.WriteLine("\\large Promatics Education Centre\\\\[1.5em]"); Console.WriteLine("\\endgroup"); Console.WriteLine(); Console.WriteLine(latex[0]); Console.WriteLine("\\textbf{Exercise "+((i+30)/30+1)+". "+exerciseTitle+".}\\\\"); Console.WriteLine("\\begin{multicols}{2}"); Console.WriteLine(" \\begin{enumerate}[label=\\arabic*)]"); Console.WriteLine(latex[1]); } } } /*public static void makeDivQ(int lower1, int upper1, int lower2, int upper2){ for (int i=lower1; i<=upper1; i++){ for (int j=lower2; j<=upper2; j++){ if (i%j==0) { Console.WriteLine("\\("+i+"\\div"+j+"=\\)"); } } } }*/ public static void makeAlgebra(){ //string[] vari = new string[24] {"a","b","c","d","f","g","h","k","m","n","p","q","r","s","t","u","v","w","x","y","z","\\delta", "\\epsilon", "\\phi"}; string[] vari = new string[21] {"a","b","c","ab","bc","ac","abc","x","y","z","xy","yz","xz","xyz","k","m","n","km","kn","mn","kmn"}; //var[0] = "a"; //var[1] = "b"; //var[2] = "c"; int n=-1; // n is the random number of variables per question int m=0; int i_final=30000; int incre= 0; string title = "Algebra Simplification Introduction"; string exerciseTitle = "Simplify the algebraic expressions"; string[] latex = new string[] {"\\fontsize{12pt}{16pt}\\selectfont", " \\setlength\\itemsep{2em}"}; string[] op = new string[4] {"+","-","(", ")("}; int operand = Rand.Next(0,1); //string end =")=\\)"; string end = "=\\)"; for (int i=1; i<=i_final; i++) { int num2=Rand.Next(0,7); // range of number of different variables per question int num = Rand.Next(2,5); // range of number of total variables per question int consts=Rand.Next(-9,10); // range of coefficients of the variables while (true) { consts=Rand.Next(-9,10); if (consts==0) { consts=Rand.Next(-9,10); } else break; } if(i==1){ Console.WriteLine("\\begin{figure}[ht!]"); Console.WriteLine("\\vspace{-23mm}\\hspace*{-23mm}\\includegraphics[scale=0.9]{Logo.jpg}"); Console.WriteLine("\\end{figure}"); Console.WriteLine(); Console.WriteLine("\\vspace{-15mm}\\begingroup"); Console.WriteLine("\\centering"); Console.WriteLine("\\LARGE "+title+" \\\\[0.5em]"); //Console.WriteLine("\\large Promatics Education Centre\\\\[1.5em]"); Console.WriteLine("\\endgroup"); Console.WriteLine(); Console.WriteLine(latex[0]); Console.WriteLine("\\textbf{Exercise "+(m/30+1)+". "+exerciseTitle+".}\\\\"); Console.WriteLine("\\begin{multicols}{2}"); Console.WriteLine(" \\begin{enumerate}[label=\\arabic*)]"); Console.WriteLine(latex[1]); } if (n==-1){ //first variable of each question Console.Write(" \\item \\("); } if (n==0){ Console.Write(consts+vari[num2+7*incre]+op[operand]); } else if (n>0 && n<num){ Console.Write(consts+vari[num2+7*incre]+op[operand]); } n++; if (n==num){ m++; Console.Write(consts+vari[num2+7*incre]); Console.Write(end); Console.WriteLine(); if (m%30==0) { incre=Rand.Next(0,3); Console.WriteLine("\\end{enumerate}"); Console.WriteLine("\\end{multicols}"); Console.WriteLine(); Console.WriteLine("\\pagebreak[4]"); Console.WriteLine(); Console.WriteLine("\\begin{figure}[ht!]"); Console.WriteLine("\\vspace{-23mm}\\hspace*{-23mm}\\includegraphics[scale=0.9]{Logo.jpg}"); Console.WriteLine("\\end{figure}"); Console.WriteLine(); Console.WriteLine("\\vspace{-15mm}\\begingroup"); Console.WriteLine("\\centering"); Console.WriteLine("\\LARGE "+title+" \\\\[0.5em]"); //Console.WriteLine("\\large Promatics Education Centre\\\\[1.5em]"); Console.WriteLine("\\endgroup"); Console.WriteLine(); Console.WriteLine(latex[0]); Console.WriteLine("\\textbf{Exercise "+(m/30+1)+". "+exerciseTitle+".}\\\\"); Console.WriteLine("\\begin{multicols}{2}"); Console.WriteLine(" \\begin{enumerate}[label=\\arabic*)]"); Console.WriteLine(latex[1]); } Console.Write(" \\item \\("); n=0; } else if (n>num){ m++; Console.Write(consts+vari[num2+3*incre]); Console.Write(end); Console.WriteLine(); if (m%30==0) { incre=Rand.Next(0,3); Console.WriteLine("\\end{enumerate}"); Console.WriteLine("\\end{multicols}"); Console.WriteLine(); Console.WriteLine("\\pagebreak[4]"); Console.WriteLine(); Console.WriteLine("\\begin{figure}[ht!]"); Console.WriteLine("\\vspace{-23mm}\\hspace*{-23mm}\\includegraphics[scale=0.9]{Logo.jpg}"); Console.WriteLine("\\end{figure}"); Console.WriteLine(); Console.WriteLine("\\vspace{-15mm}\\begingroup"); Console.WriteLine("\\centering"); Console.WriteLine("\\LARGE "+title+" \\\\[0.5em]"); //Console.WriteLine("\\large Promatics Education Centre\\\\[1.5em]"); Console.WriteLine("\\endgroup"); Console.WriteLine(); Console.WriteLine(latex[0]); Console.WriteLine("\\textbf{Exercise "+((m+30)/30+1)+". "+exerciseTitle+".}\\\\"); Console.WriteLine("\\begin{multicols}{2}"); Console.WriteLine(" \\begin{enumerate}[label=\\arabic*)]"); Console.WriteLine(latex[1]); } Console.Write(" \\item \\("); n=0; } /* if(i==i_final){ Console.WriteLine("\\end{enumerate}"); Console.WriteLine("\\end{multicols}"); }*/ } } public static void makeDiv4by2() { for (int i =0; i<10000; i++) { int dividend = Rand.Next(1001,10000); int divisor = Rand.Next(11,99); if (dividend%divisor==0) { Console.WriteLine(" \\item \\("+dividend+"\\div"+divisor+"=\\)"); } } } public static void makeSciNot(){ for (int i=0; i<100; i++){ int num1 = Rand.Next(1,10); int dec1 = Rand.Next(1,10); int num2 = Rand.Next(1,10); int dec2 = Rand.Next(1,10); int exp = Rand.Next(-9,10); int plusminus = Rand.Next(-1,2); if (num1>num2 && exp != exp+plusminus){ Console.WriteLine(" \\item \\({0}.{3} \\times 10^{{{2}}}+{1}.{4} \\times 10^{{{5}}}=\\)",num1,num2,exp,dec1,dec2,exp+plusminus); } } } public static void DN(){ //st<string> sign = new List<string>(new string[] {"+","-","*","/"}); List<char> sign = new List<char>(new char[] {'+','-','*','/'}); for (int i=0;i<100;i++){ string question = "{0}{1}{2}{3}{4}{5}{6}"; int pick1= Rand.Next(0+sign.Count()); int pick2= Rand.Next(0+sign.Count()); int pick3= Rand.Next(0+sign.Count()); int num1=Rand.Next(-9,10); int num2=Rand.Next(-9,10); int num3=Rand.Next(-9,10); int num4=Rand.Next(-9,10); string num1_str, num2_str, num3_str, num4_str; bool num1_b = num1<0; bool num2_b = num2<0; bool num3_b = num3<0; bool num4_b = num4<0; if (num1_b && !num2_b && !num3_b && !num4_b) { num1_str = "("+num1.ToString()+")"; Console.WriteLine(question,num1_str,sign[pick1],num2,sign[pick2],num3,sign[pick3],num4); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num2_b && !num1_b && !num3_b && !num4_b){ num2_str = "("+num2.ToString()+")"; Console.WriteLine(question,num1,sign[pick1],num2_str,sign[pick2],num3,sign[pick3],num4); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num3_b && !num1_b && !num2_b && !num4_b){ num3_str = "("+num3.ToString()+")"; Console.WriteLine(question,num1,sign[pick1],num2,sign[pick2],num3_str,sign[pick3],num4); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num4_b && !num1_b && !num2_b && !num3_b){ num4_str = "("+num4.ToString()+")"; Console.WriteLine(question,num1,sign[pick1],num2,sign[pick2],num3,sign[pick3],num4_str); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num1_b && num2_b &&!num3_b && !num4_b){ num1_str = "("+num1.ToString()+")"; num2_str = "("+num2.ToString()+")"; Console.WriteLine(question,num1_str,sign[pick1],num2_str,sign[pick2],num3,sign[pick3],num4); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num1_b && num3_b && !num2_b && !num4_b){ num1_str = "("+num1.ToString()+")"; num3_str = "("+num3.ToString()+")"; Console.WriteLine(question,num1_str,sign[pick1],num2,sign[pick2],num3_str,sign[pick3],num4); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num1_b && num4_b && !num2_b && !num3_b){ num1_str = "("+num1.ToString()+")"; num4_str = "("+num4.ToString()+")"; Console.WriteLine(question,num1_str,sign[pick1],num2,sign[pick2],num3,sign[pick3],num4_str); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num2_b && num3_b && !num1_b && !num4_b){ num2_str = "("+num2.ToString()+")"; num3_str = "("+num3.ToString()+")"; Console.WriteLine(question,num1,sign[pick1],num2_str,sign[pick2],num3_str,sign[pick3],num4); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num2_b && num4_b && !num1_b && !num3_b){ num2_str = "("+num2.ToString()+")"; num4_str = "("+num4.ToString()+")"; Console.WriteLine(question,num1,sign[pick1],num2_str,sign[pick2],num3,sign[pick3],num4_str); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num3_b && num4_b && !num1_b && !num2_b){ num3_str = "("+num3.ToString()+")"; num4_str = "("+num4.ToString()+")"; Console.WriteLine(question,num1,sign[pick1],num2,sign[pick2],num3_str,sign[pick3],num4_str); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num1_b && num2_b && num3_b && !num4_b){ num1_str = "("+num1.ToString()+")"; num2_str = "("+num2.ToString()+")"; num3_str = "("+num3.ToString()+")"; Console.WriteLine(question,num1_str,sign[pick1],num2_str,sign[pick2],num3_str,sign[pick3],num4); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num1_b && num3_b && num4_b && !num2_b){ num1_str = "("+num1.ToString()+")"; num3_str = "("+num3.ToString()+")"; num4_str = "("+num4.ToString()+")"; Console.WriteLine(question,num1_str,sign[pick1],num2,sign[pick2],num3_str,sign[pick3],num4_str); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num1_b && num2_b && num4_b && !num3_b){ num1_str = "("+num1.ToString()+")"; num2_str = "("+num2.ToString()+")"; num4_str = "("+num4.ToString()+")"; Console.WriteLine(question,num1_str,sign[pick1],num2_str,sign[pick2],num3,sign[pick3],num4_str); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else if (num2_b && num3_b && num4_b && !num1_b){ num2_str = "("+num2.ToString()+")"; num3_str = "("+num3.ToString()+")"; num4_str = "("+num4.ToString()+")"; Console.WriteLine(question,num1,sign[pick1],num2_str,sign[pick2],num3_str,sign[pick3],num4_str); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } else { Console.WriteLine(question,num1,sign[pick1],num2,sign[pick2],num3,sign[pick3],num4); Console.WriteLine(num1+sign[pick1]+num2+sign[pick2]+num3+sign[pick3]+num4); } } } public static void MixedNum() { int[] n = new int[10]; List<string> questions = new List<string> (); /////////////////// for the strings List<string> lines = new List<string>(); lines.Add("\\begin{figure}[ht!]"); lines.Add("\\vspace{-23mm}\\hspace*{-23mm}\\includegraphics[scale=0.9]{Logo.jpg}"); lines.Add("\\end{figure}"); lines.Add(""); lines.Add("\\begin{addmargin}[21em]{0em}"); lines.Add("\\vspace{-26mm}Name: \\underline{\\hspace{5cm}} \\\\[0.5em]"); lines.Add("\\end{addmargin}\\vspace{5mm}"); lines.Add(""); lines.Add("\\vspace{-10mm}\\begingroup"); lines.Add("\\centering"); lines.Add("\\LARGE Revision \\\\[0.5em]"); lines.Add("\\endgroup"); lines.Add(""); lines.Add("\\section{What numbers (from 2 to 9) can these numbers be divisible by?}"); lines.Add("\\begin{tasks}(2)"); /////////////////////// while (questions.Count()<300) { //n[0] = Rand.Next(10,400); // for prime factorization n[0]=Rand.Next(3,8); n[1]=Rand.Next(); for (int i =0; i<n.Length; i++){ n[i] = Rand.Next(1,13); n[1] = Rand.Next(2,13); n[3] = Rand.Next(2,13); n[4] = Rand.Next(2,10); n[5] = Rand.Next(2,10); } string[] op = new string[] {"+","-"}; int x = Rand.Next(0,op.Count()); int y = Rand.Next(0,2); int z = Rand.Next(0,2); //Console.WriteLine("\\("+n[4]+"\\dfrac{"+n[0]+"}{"+n[1]+op[x]+n[5]+"\\dfrac{"+n[2]+"}{"+n[3]+"}=\\)\\\\"); if (n[1]!=n[3] && n[0]<n[1] && n[2]<n[3]) { double n0 = (double)n[0]; double n1 = (double)n[1]; double n2 = (double)n[2]; double n3 = (double)n[3]; if (op[x].Equals("-")){ if(n[4]>n[5]) { questions.Add(" \\task \\("+n[4]+"\\dfrac{"+n[0]+"}{"+n[1]+"}"+op[x]+n[5]+"\\dfrac{"+n[2]+"}{"+n[3]+"}=\\underline{\\hspace{2cm}}\\)\\\\"); } else if (n[4]==n[5] && ((double)n[0]/(double)n[1])>((double)n[2]/(double)n[3])){ questions.Add(" \\task \\("+n[4]+"\\dfrac{"+n[0]+"}{"+n[1]+"}"+op[x]+n[5]+"\\dfrac{"+n[2]+"}{"+n[3]+"}=\\underline{\\hspace{2cm}}\\)\\\\"); } } else { questions.Add(" \\task \\("+n[4]+"\\dfrac{"+n[0]+"}{"+n[1]+"}"+op[x]+n[5]+"\\dfrac{"+n[2]+"}{"+n[3]+"}=\\underline{\\hspace{2cm}}\\)\\\\"); } // for fraction arithmetic } } int counter=0; int increment=29; for (int i=0; i<questions.Count(); i++) { if ((i)%30==0){ //foreach (string line in lines) { //Console.WriteLine(line); Console.WriteLine("Begin"); //} } Console.WriteLine(questions[i]); if( i==increment) { //Console.WriteLine("\\end{tasks}"); //Console.WriteLine("\\newpage"); Console.WriteLine("End"); } increment = increment + counter*30; counter = counter+1; } //Console.WriteLine(questions.Count()); } public static void PrintArithmetic<T>(List<T> list, string title) { //string title = "Title ()"; //string exerciseTitle = "Instructions"; //int m=0; //int i_final=30000; //int incre= 0; string[] latex = new string[] {"\\fontsize{16pt}{25pt}\\selectfont", " \\setlength\\itemsep{10pt}"}; string[] op = new string[2] {"(", ")("}; //string end = ")=\\)"; for (int i=0; i<list.Count(); i++){ if(i==0){ Console.WriteLine("\\begin{figure}[ht!]"); Console.WriteLine("\\vspace{-23mm}\\hspace*{-33mm}\\includegraphics[scale=0.9]{Logo.jpg}"); Console.WriteLine("\\end{figure}"); Console.WriteLine(); Console.WriteLine("\\vspace{-15mm}\\hspace*{-10mm}\\begingroup"); Console.WriteLine("\\centering"); Console.WriteLine("\\LARGE "+title+" \\\\[0.5em]"); Console.WriteLine("\\endgroup"); Console.WriteLine(); Console.WriteLine(latex[0]); //Console.WriteLine("\\textbf{Exercise "+(i/30+1)+". "+exerciseTitle+".}\\\\"); Console.WriteLine("\\begin{multicols}{2}"); Console.WriteLine(" \\begin{enumerate}[label=\\arabic*)]"); Console.WriteLine(latex[1]); } Console.WriteLine(list[i]); if (i!=0 && (i+1)%30==0){ Console.WriteLine("\\end{enumerate}"); Console.WriteLine("\\end{multicols}"); Console.WriteLine(); Console.WriteLine("\\newpage"); Console.WriteLine(); Console.WriteLine("\\begin{figure}[ht!]"); Console.WriteLine("\\vspace{-23mm}\\hspace*{-23mm}\\includegraphics[scale=0.9]{Logo.jpg}"); Console.WriteLine("\\end{figure}"); Console.WriteLine(); Console.WriteLine("\\vspace{-15mm}\\hspace*{-10mm}\\begingroup"); Console.WriteLine("\\centering"); Console.WriteLine("\\LARGE "+title+" \\\\[0.5em]"); Console.WriteLine("\\endgroup"); Console.WriteLine(); //Console.WriteLine("\\textbf{Exercise "+((i+30)/30+1)+". "+exerciseTitle+".}\\\\"); Console.WriteLine("\\begin{multicols}{2}"); Console.WriteLine(" \\begin{enumerate}[label=\\arabic*)]"); Console.WriteLine(latex[1]); } } } public static void Print<T>(List<T> list, string title, string exerciseTitle) { //string title = "Title ()"; //string exerciseTitle = "Instructions"; //int m=0; //int i_final=30000; //int incre= 0; string[] latex = new string[] {"\\fontsize{12pt}{16pt}\\selectfont", " \\setlength\\itemsep{2em}"}; string[] op = new string[2] {"(", ")("}; //string end = ")=\\)"; for (int i=0; i<list.Count(); i++){ if(i==0){ Console.WriteLine("\\begin{figure}[ht!]"); Console.WriteLine("\\vspace{-23mm}\\hspace*{-23mm}\\includegraphics[scale=0.9]{Logo.jpg}"); Console.WriteLine("\\end{figure}"); Console.WriteLine(); Console.WriteLine("\\vspace{-15mm}\\begingroup"); Console.WriteLine("\\centering"); Console.WriteLine("\\LARGE "+title+" \\\\[0.5em]"); Console.WriteLine("\\endgroup"); Console.WriteLine(); Console.WriteLine(latex[0]); Console.WriteLine("\\textbf{Exercise "+(i/30+1)+". "+exerciseTitle+".}\\\\"); Console.WriteLine("\\begin{multicols}{2}"); Console.WriteLine(" \\begin{enumerate}[label=\\arabic*)]"); Console.WriteLine(latex[1]); } Console.WriteLine(list[i]); if (i!=0 && (i+1)%30==0){ Console.WriteLine("\\end{enumerate}"); Console.WriteLine("\\end{multicols}"); Console.WriteLine(); Console.WriteLine("\\newpage"); Console.WriteLine(); Console.WriteLine("\\begin{figure}[ht!]"); Console.WriteLine("\\vspace{-23mm}\\hspace*{-23mm}\\includegraphics[scale=0.9]{Logo.jpg}"); Console.WriteLine("\\end{figure}"); Console.WriteLine(); Console.WriteLine("\\vspace{-15mm}\\begingroup"); Console.WriteLine("\\centering"); Console.WriteLine("\\LARGE "+title+" \\\\[0.5em]"); Console.WriteLine("\\endgroup"); Console.WriteLine(); Console.WriteLine(latex[0]); Console.WriteLine("\\textbf{Exercise "+((i+30)/30+1)+". "+exerciseTitle+".}\\\\"); Console.WriteLine("\\begin{multicols}{2}"); Console.WriteLine(" \\begin{enumerate}[label=\\arabic*)]"); Console.WriteLine(latex[1]); } } } public static void LCM(int a, int b) { int lcm; int a_r=a; int b_r=b; int d=max(a_r,b_r); while(d>1) { if (a_r%d==0 && b_r%d==0) { int a_r_temp=a_r/d; int b_r_temp=b_r/d; a_r=a_r_temp; b_r=b_r_temp; lcm=d*a_r*b_r; break; } d--; } lcm=d*a_r*b_r; Console.WriteLine("LCM({0},{1}): {2}", a,b,lcm); } public static void LCM(int a, int b, int c) { int lcm; if (a==0) { Console.Write("LCM("+a+","+b+","+c+") = "); LCM(b,c); } else if (b==0) { Console.Write("LCM("+a+","+b+","+c+") = "); LCM(a,c); } else if(c==0) { Console.Write("LCM("+a+","+b+","+c+") = "); LCM(a,b); } // if all three are equal else if (a==b && b==c) { Console.WriteLine("LCM: "+a); } // if a and b are equal else if (a==b && a!=c) { if (a>c) { // if a is greater than c, use a as divisor then decrement for (int i=a; a>1; i--) { if (a%i==0 && c%i==0) { int a_reduced=a/i; int c_reduced=c/i; lcm = i*a_reduced*c_reduced; Console.WriteLine("LCM("+a+","+b+","+c+"): " + lcm); break; } } } else { // if c is greater than a, use c as divisor then decrement for (int i=c; c>1; i--) { if (a%i==0 && c%i==0) { int a_reduced=a/i; int c_reduced=c/i; lcm = i*a_reduced*c_reduced; Console.WriteLine("LCM("+a+","+b+","+c+"): " + lcm); break; } } } } // if b and c are equal else if (b==c && a!=b) { if (a>b) { // if a is greater than b, use b as divisor then decrement for (int i=a; a>1; i--) { if (a%i==0 && b%i==0) { int a_reduced=a/i; int b_reduced=b/i; lcm = i*a_reduced*b_reduced; Console.WriteLine("LCM("+a+","+b+","+c+"): " + lcm); break; } } } else { // if b is greater than a, use b as divisor then decrement for (int i=b; b>1; i--) { if (a%i==0 && b%i==0) { int a_reduced=a/i; int b_reduced=b/i; lcm = i*a_reduced*b_reduced; Console.WriteLine("LCM("+a+","+b+","+c+"): " + lcm); break; } } } } // if a and c are equal else if (a==c && a!=b) { if (a>b) { // if a is greater than b, use a as divisor then decrement for (int i=a; a>1; i--) { if (a%i==0 && b%i==0) { int a_reduced=a/i; int b_reduced=b/i; lcm = i*a_reduced*b_reduced; Console.WriteLine("LCM("+a+","+b+","+c+"): " + lcm); break; } } } else { // if b is greater than a, use b as divisor then decrement for (int i=b; b>1; i--) { if (a%i==0 && b%i==0) { int a_reduced=a/i; int b_reduced=b/i; lcm = i*a_reduced*b_reduced; Console.WriteLine("LCM("+a+","+b+","+c+"): " + lcm); break; } } } } //if all three are different else { int a_r = a; int b_r = b; int c_r = c; int d = max (a_r,b_r,c_r); //set divisor as the max of the 3 numbers while (d>1) { if (a_r%d==0 && b_r%d==0 && c_r%d==0) { int a_r_temp=a_r/d; int b_r_temp=b_r/d; int c_r_temp=c_r/d; a_r = a_r_temp; b_r = b_r_temp; c_r = c_r_temp; //Console.WriteLine("a_r and b_r and c_r"); break; } else if (a_r%d==0 && b_r%d==0) { int a_r_temp=a_r/d; int b_r_temp=b_r/d; a_r = a_r_temp; b_r = b_r_temp; //Console.WriteLine("a_r and b_r"); break; } else if (a_r%d==0 && c_r%d==0) { int a_r_temp=a_r/d; int c_r_temp=c_r/d; a_r = a_r_temp; c_r = c_r_temp; //Console.WriteLine("a_r and c_r"); break; } else if (b_r%d==0 && c_r%d==0) { int b_r_temp=b_r/d; int c_r_temp=c_r/d; b_r = b_r_temp; c_r = c_r_temp; //Console.WriteLine("b_r and c_r"); break; } else { //lcm=d*a_r*b_r*c_r; //Console.WriteLine("{0}, {1}, {2}, {3}",a_r,b_r,c_r,d); //Console.WriteLine("LCM({0},{1},{2}): {3}",a,b,c,lcm); } d--; } lcm=d*a_r*b_r*c_r; //Console.WriteLine("{0}, {1}, {2}, {3}",a_r,b_r,c_r,d); Console.WriteLine("LCM({0},{1},{2}): {3}",a,b,c,lcm); } } public static int max(int a, int b) { if (a>b){ return a; } else if (b>a){ return b; } else { return a; } } public static int max(int a, int b, int c) { if (a>=b && a>=c) { return a; } else if (b>=a && b>=c) { return b; } else { return c; } } public static void Pyth(int lowerBound, int upperBound) { //Your code goes here for (int i=lowerBound; i<=upperBound; i++) { for (int j=lowerBound; j<=upperBound; j++){ double c = Math.Sqrt(Math.Pow(i,2)+Math.Pow(j,2)); if (c%1==0){ Console.WriteLine("(a,b,c) = (" + i + "," + j + "," + c + ")"); } } } } public static void areaTrapezoid(double top, double bottom, double height) { double area = (top+bottom)*height/2; Console.WriteLine("Area: {0}", area); } public static void volumeCylinder ( double radius, double height) { double vol = radius*radius*Math.PI*height; Console.WriteLine("Volume: {0}", vol); } public static void sAreaCylinder(double radius, double height) { double s_area = 2*calcAreaCircle(radius) + calcAreaCircle(radius)*height; Console.WriteLine("Surface Area: {0}", s_area); } public static void Circumf(int radius){ double circ = 2*radius*Math.PI; Console.WriteLine("Circumference: {0}", circ); } public static void areaCircle(double r){ double area = r*r*Math.PI; Console.WriteLine("Area: {0}", area); } public static double calcAreaCircle(double r){ return r*r*Math.PI; } public static double calcCircumCirlce(double r){ return 2*r*Math.PI; } public static void sAreaCone(int r, int l) {} public static void volumeCone(int r, int h){} public static void SimplifyRatio(int ratio1, int ratio2, int ratio3) { int divisor; if (ratio1>ratio2 && ratio1>ratio3) { divisor = ratio1; } else if (ratio2>ratio1 && ratio2>ratio3) { divisor = ratio2; } else divisor = ratio3; int ratio1_reduce = ratio1; int ratio2_reduce = ratio2; int ratio3_reduce = ratio3; while (divisor!=1) { if(ratio1_reduce%divisor==0 && ratio2_reduce%divisor==0 && ratio3_reduce%divisor==0){ int ratio1_reduce_temp = ratio1_reduce/divisor; int ratio2_reduce_temp = ratio2_reduce/divisor; int ratio3_reduce_temp = ratio3_reduce/divisor; ratio1_reduce = ratio1_reduce_temp; ratio2_reduce = ratio2_reduce_temp; ratio3_reduce = ratio3_reduce_temp; divisor--; } else divisor--; } Console.WriteLine(ratio1+":"+ratio2+":"+ratio3+" = "+ratio1_reduce+":"+ratio2_reduce+":"+ratio3_reduce); } public static void checkAlgebra(){ for (int x = -40; x<40; x++) { int a = 62*x-68; int b = 35; if (a%b==0){ Console.WriteLine(x); } } } public static void addLineBreak(int linesPerSection, int totalLines) { for (int i=0; i<=totalLines; i++) { if (i%linesPerSection==0) { Console.WriteLine("Break"); } else Console.WriteLine("No"); } } public static void circleX(double x, double radius) { Console.WriteLine("("+x+", "+Math.Round(Math.Sqrt(radius*radius-Math.Pow(x,2)),3)+")"); } public static void circleY(double y, double radius) { Console.WriteLine("("+y+", "+Math.Round(Math.Sqrt(radius*radius-Math.Pow(y,2)),3)+")"); } public static void angle(double x1, double y1, double x2, double y2, double x3, double y3) { double l12 = Math.Pow((x1-x2),2) +Math.Pow((y1-y2),2); double l13 = Math.Pow((x3-x1),2) +Math.Pow((y3-y1),2); double l23 = Math.Pow((x3-x2),2) +Math.Pow((y3-y2),2); double lhs = (l13-l12-l23)/(-2*Math.Sqrt(l12)*Math.Sqrt(l23)); double angle2 = Math.Acos(lhs); //double angle2 = Math.Round(Math.Acos()*100,3); //Console.WriteLine(angle2 + " degrees C"); Console.WriteLine(l12 + " " + l23 + " " + l13); Console.WriteLine(lhs); Console.WriteLine(angle2*360/(2*Math.PI)+" degrees"); } } public static class Rand { /// <summary> /// Random number generator used to generate seeds, /// which are then used to create new random number /// generators on a per-thread basis. /// </summary> private static readonly Random globalRandom = new Random(); private static readonly object globalLock = new object(); /// <summary> /// Random number generator /// </summary> private static readonly ThreadLocal<Random> threadRandom = new ThreadLocal<Random>(NewRandom); /// <summary> /// Creates a new instance of Random. The seed is derived /// from a global (static) instance of Random, rather /// than time. /// </summary> public static Random NewRandom() { lock (globalLock) { return new Random(globalRandom.Next()); } } /// <summary> /// Returns an instance of Random which can be used freely /// within the current thread. /// </summary> public static Random Instance { get { return threadRandom.Value; } } /// <summary>See <see cref="Random.Next()" /></summary> public static int Next() { return Instance.Next(); } /// <summary>See <see cref="Random.Next(int)" /></summary> public static int Next(int maxValue) { return Instance.Next(maxValue); } /// <summary>See <see cref="Random.Next(int, int)" /></summary> public static int Next(int minValue, int maxValue) { return Instance.Next(minValue, maxValue); } /// <summary>See <see cref="Random.NextDouble()" /></summary> public static double NextDouble() { return Instance.NextDouble(); } /// <summary>See <see cref="Random.NextBytes(byte[])" /></summary> public static void NextBytes(byte[] buffer) { Instance.NextBytes(buffer); } public static double NextD(double minValue, double maxValue) { return Instance.NextDouble()*(maxValue-minValue)+minValue; } } } namespace ShuffleExtension { public static class ShuffleExtend { //private static readonly Random rnd = new Random(); public static void Shuffle<T>(this IList<T> list) { int n = list.Count; while (n > 1) { int k = (Rextester.Rand.Next(0, n) % n); n--; T value = list[k]; list[k] = list[n]; list[n] = value; } } } }
run
|
edit
|
history
|
help
0
saxasd
adxaxsdc
Game v1.0.1
Delegates
asdfghyjuytt4wed
Hello world
Selection Sort
DD
D15
1.