Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Georg Cantor's first set theory article wikipedia , lookup
Positional notation wikipedia , lookup
Infinitesimal wikipedia , lookup
Location arithmetic wikipedia , lookup
Mathematics of radio engineering wikipedia , lookup
Real number wikipedia , lookup
Large numbers wikipedia , lookup
Lecture Set 9 Arrays, Collections and Repetition Part C - Random Numbers Rectangular and Jagged arrays Objectives Understand the concept of random numbers and how to generate random numbers Understand how to declare and manipulate rectangular and higher dimension arrays Understand how to declare and manipulate jagged arrays Working with arrays of objects 8/18/2013 1:06 PM Introduction to Random Numbers Applications that require random numbers Gaming and casino applications Computer simulations Test data generation The process of creating a sequence of random numbers is called random number generation 8/18/2013 1:06 PM Operation of a Random Number Generator A random number generator is initialized based on a seed value Given the same seed value, the same random number sequence will be generated Different seed values will generate different random sequences The time of day (often expressed in milliseconds) is often used to create random seed values 8/18/2013 1:06 PM The System.Random Class The System.Random class of the FCL is used to create a random number generator and generate and get random values We can generate integer and double random values The constructor of the System.Random class creates the random number generator (an instance of the random class) Using no constructor arguments, a random seed value is used The seed value is based on the time of day Random rndVal = new Random(); This is the same as Random rndVal = new Random(DateTime.Now.Millisecond); 8/18/2013 1:06 PM The Next Method Without arguments, the Next method gets a positive random Integer value Random rndValR = new Random;; int rndValI = rndValR.Next(); With two arguments, a value within a range is returned The first argument contains the lower bound and the second argument contains the upper bound rndValI = rndValR.Next(1, 10); rndValI = rndValR.Next(1, 6); // Let index be an integer index = rndValR.Next(0, myDictionaryWords.Length - 1); The second line could be used to generate the value of the roll of a single die. How would you generate a random value representing the roll of two dice? 8/18/2013 1:06 PM The NextDouble Method The NextDouble method returns a random value between 0.0 and 1.0 The value is in the interval [0.0<=value<1.0) Closed on the left and open on the right Example: double randomDouble; randomDouble = _ rndValR.NextDouble() ‘A value such a .4599695143908786 is generated 8/18/2013 1:06 PM Introduction to Two-dimensional Arrays A two-dimensional array has rows and columns Conceptually, it's similar to a grid or table Two-dimensional arrays have two subscripts instead of one Declare a two-dimensional array with unspecified dimensions int [,] Table; Declare a two-dimensional array with 10 rows and 10 columns int [9, 9] Table; 8/18/2013 1:06 PM Initializing Two-dimensional Arrays Two-dimensional arrays can be initialized just as onedimensional arrays can be initialized The array must not be given an initial size The initialization list is nested as follows: int SalesArray[,] = {150, 140, 170, {155, 148, 182, {162, 153, 191, {181, 176, 201, }; { 178}, 190}, 184}, 203} 8/18/2013 1:06 PM Referencing Elements in a Two-dimensional Array Two-dimensional arrays require two subscripts instead of one A comma separates the two subscripts Reference the first row and column in the array named SalesArray int cell; cell = SalesArray[0, 0]; 8/18/2013 1:06 PM Introduction to Three-dimensional Arrays (optional) It's possible to create arrays with three dimensions A three-dimensional array has three subscripts instead of two Declare a dynamic three-dimensional array int cube[,,]; Declare a 10 by 10 by 10 array (1000 elements) double cube[10, 10, 10]; 8/18/2013 1:06 PM Working with Arrays of Objects Arrays can store object references in addition to storing primary data types Example to store text box references: textbox [3] textBoxList; textBoxList[0] = txtFirstName; textBoxList[1] = txtLastName; textBoxList[2] = txtAddress; What does this array look like? 8/18/2013 1:06 PM Memory Allocation to Store an Array of Text Boxes (VB) 8/18/2013 1:06 PM Another View of 2D (Rectangular) Arrays The syntax for declaring a rectangular array type [firstupperbound, secondupperbound] arrayName; A statement that creates a 3x2 array int [2, 1] numbers; The syntax for referring to an element of a rectangular array arrayName[rowindex, columnindex] 8/18/2013 1:06 PM Operations on a 2-Dimension Array The syntax for using the GetLength method of a rectangular array arrayName.GetLength(dimensionindex) Code that works with the numbers array int int int int [,] numbers = { {1,2}, {3,4}, {5,6} }; numberOfRows = numbers.GetLength(0); numberOfColumns = numbers.GetLength(1); sumOfFirstRow = numbers[0,0]+ numbers[0,1]; 8/18/2013 1:06 PM More Operations on a 2-Dimension Array Code that displays the numbers array in a message box string numbersString = ""; for (int i = 0; i < numbers.GetLength(0); i++) { for (int j = 0; j < numbers.GetLength(1); i++) { numbersString += numbers[i, j] + " "; } // end inner loop numbersString += "\n"; } // end outer loop MessageBox.Show(numbersString, "Numbers Test"); The message box that’s displayed 8/18/2013 1:06 PM Jagged Arrays (by Example) The syntax for declaring a jagged array type [numberofrows][] arrayName; Code that declares a jagged array with three rows int numbers [3][]; numbers[0] = new int[2]; numbers[1] = new int[3]; numbers[2] = new int[1]; ' ' ' ' 3 3 4 2 rows are declared columns for 1st row columns for 2nd row columns for 3rd row 8/18/2013 1:06 PM Jagged Array References (optional) I am not sure you will have occasion to do this – but maybe The example is interesting from a pedagogic view It illustrates memory allocation issues discussed already Referring to an element of a jagged array arrayName[rowindex][columnindex] Statements that assign values to the numbers array numbers[0][0) = 1; numbers[1][0] numbers[0][1) = 2; numbers[1][1] numbers[0][2) = 3; numbers[1][2] ] numbers[1][3] = = = = 4; 5; 6; 7; numbers[2][0] = 8; numbers[2][1] = 9; 8/18/2013 1:06 PM More Jagged Array (examples – optional) Code that creates the numbers array with one statement int [][] numbers = {new int[2] {1, 2, 3}, new int[3] {4, 5, 6, 7}, new int[1] {8, 9}} Code that creates a jagged array of strings string [][]titles = _ {new string[2] {"War and Peace", "Wuthering Heights", "1984"}, new string[3] {"Casablanca", "Wizard of Oz", "Star Wars", "Birdy"}, new string[1] {"Blue Suede Shoes", "Yellow Submarine"}}; 8/18/2013 1:06 PM Yet ANOTHER Example (optional) Code that displays the numbers array in a message box string numbersString = ""; for (int i = 0; i < numbers.GetLength(0); i++) { for (int j = 0; j < numbers(i).Length; j++) { numbersString += numbers[i][j] + " "; } // end inner loop numbersString += "\n"; } // end outer loop MessageBox.Show(numbersString, "Jagged Numbers Test") The message box that’s displayed 8/18/2013 1:06 PM Common properties and methods of the Array class Property Length Instance method GetLength(dimension) GetUpperBound(dimension) Description Gets the number of elements in all of the dimensions of an array. Description Gets the number of elements in the specified dimension of an array. Gets the index of the last element in the specified dimension of an array. 8/18/2013 1:06 PM Common properties and methods of the Array class (continued) Static method Copy(array1, array2, length) BinarySearch(array, value) Sort(array) Description Copies some or all of the values in one array to another array. Searches a one-dimensional array that’s in ascending order for an element with a specified value and returns the index for that element. Sorts the elements in a onedimensional array into ascending order. 8/18/2013 1:06 PM