<_name>Clock rotation Logic All int num = (1 + random.Next (5)) * 10; int rslt = (2 * 360) + (num * 6); <_rationale>Every hour rotates 360 degrees. How many degrees rotates the minute hand of a clock in 2 hours [num] minute? How many degrees rotates the minute hand of a clock in 2 hours [num] minutes? [rslt] <_name>Brothers and sisters Logic All int people = 40; int brothers = 10 + random.Next (8); int sisters = 12 + random.Next (8); int both = 5 + random.Next (5); int brothers_only = (brothers - both); int sisters_only = (sisters - both); int rslt = people - brothers_only - sisters_only - both; <_question>Out of [people] people, [brothers] have brothers, [sisters] have sisters and [both] have both. How many people have neither brothers nor sisters? [rslt] <_rationale>It is calculated by taking the total number of people minus [brothers_only] people that have brothers only, minus [sisters_only] that have sisters only and minus [both] that have sisters and brothers. <_name>Age Logic All int father = 46; int difference = 2 + random.Next (8); int son = (father / 2) - difference; John is 46 years old. His son is [difference] year younger than half of John's age. How old is John's son? John is 46 years old. His son is [difference] years younger than half of John's age. How old is John's son? <_rationale>John's son age is nowadays half of John's age minus [difference], that is, ([father] / 2) - [difference]. [son] int [] proportions = new int [] {3,4,5}; int [] years = new int [] {12, 16, 18}; int idx = random.Next (years.Length); int ago = years [idx]; int proportion = proportions [idx]; John's age is nowadays 2 times his son's age. [ago] year ago, John was [proportion] times as old as his son. How old is John's son nowadays? John's age is nowadays 2 times his son's age. [ago] years ago, John was [proportion] times as old as his son. How old is John's son nowadays? 24 John's age (variable x) is nowadays 2 times his son's age (variable y), that is x = 2y, and [ago] year ago, John was [proportion] times as old as his son: x - [ago] = (y - [ago]) * [proportion]. John's age (variable x) is nowadays 2 times his son's age (variable y), that is x = 2y, and [ago] years ago, John was [proportion] times as old as his son: x - [ago] = (y - [ago]) * [proportion]. <_name>Password Logic All int digits = 4 + random.Next (3); int rslt = (int) Math.Pow (10, digits); A file is protected by a password formed by a [digits] digit number represented in base 10 (ranging from 0 to 9). How many different passwords can you have? A file is protected by a password formed by a [digits] digits number represented in base 10 (ranging from 0 to 9). How many different passwords can you have? [rslt] <_rationale>Every digit has 10 possibilities. The total number of possibilities is 10 at the power of [digits]. int digits = 2 + random.Next (2); int rslt = (int) Math.Pow (8, digits); A file is protected by a password formed by a [digits] digit represented in base 8 (ranging from 0 to 7). How many different passwords can you have? A file is protected by a password formed by a [digits] digits represented in base 8 (ranging from 0 to 7). How many different passwords can you have? [rslt] <_rationale>Every digit has 8 possibilities. The total number of possibilities is 8 at the power of [digits]. <_name>Tennis game Logic All int games = 5 + random.Next (5); int rslt = (int) Math.Pow (2, games); There is [games] tennis game played simultaneously. How many different forecasts are possible? There are [games] tennis games played simultaneously. How many different forecasts are possible? [rslt] <_rationale>Every game is an independent event with 2 possible results. The total number of possibilities is 2 at the power of [games]. int players = 32 + (random.Next (16) * 2); int rslt = players -1; In a tennis tournament, in every match a player is eliminated after losing to a single opponent. How many matches does it take to determine the winner of a tennis tournament that starts with [players] player? In a tennis tournament, in every match a player is eliminated after losing to a single opponent. How many matches does it take to determine the winner of a tennis tournament that starts with [players] players? <_rationale>In every match you eliminate one player. Therefore, the result is the total number of player minus one. [rslt] <_name>Bank interest Logic All int years = 2; double interest = 0.10; int [] money_options = new int [] {100, 200, 300, 400, 500, 600}; int money = money_options [random.Next (money_options.Length)]; double rslt = money * (Math.Pow (1 + interest, years)); You have [money] monetary unit in your bank account at 10% interest compounded annually. How much money will you have at the end of 2 years? You have [money] monetary units in your bank account at 10% interest compounded annually. How much money will you have at the end of 2 years? [rslt] <_rationale>Compound interest is paid on the principal plus any past interest accumulated. <_name>Simple equations Calculation All int num_a = 30 + random.Next (20); int num_b = 60 + random.Next (20); int rslt = num_b - num_a; <_question>What number plus [num_a] equals [num_b]? [rslt] <_rationale>It is the result of the operation [num_b] - [num_a]. int num_a = 30 + random.Next (20); int num_b = 60 + random.Next (20); int rslt = num_b + num_a; <_question>What number minus [num_a] equals [num_b]? [rslt] <_rationale>It is the result of the operation [num_a] + [num_b]. int num_a = 3 + random.Next (5); int num_b = (30 + random.Next (20)) * num_a; int rslt = num_b / num_a; <_question>What number multiplied by [num_a] equals [num_b]? [rslt] <_rationale>It is the result of the operation [num_b] / [num_a]. int num_a = 3 + random.Next (5); int num_b = 3 + random.Next (5); int rslt = num_a * num_b; <_question>What number divided by [num_a] equals [num_b]? [rslt] <_rationale>It is the result of the operation [num_a] * [num_b]. <_name>Boxes Logic All double z = 4 + random.Next (5); double big_box = 6 * 5 * z; double small_box = 1 * 1 * 0.5; double rslt = big_box / small_box; <_question>How many boxes measuring 1 x 1 x 0.5 can be fit into a container measuring 6 x 5 x [z]? [rslt] <_rationale>You can fit 6 * 5 * [z] * 2 boxes. <_name>Palindromic years Logic All int [] years_start = new int [] {1991, 2992, 3993}; int [] years_end = new int [] {2002, 3003, 4004}; int idx = random.Next (years_start.Length - 1); int year_start = years_start [idx]; int year_end = years_end [idx]; int rslt_a = years_start [idx + 1]; int rslt_b = years_end [idx + 1]; <_question>[year_start] is a palindromic year as [year_end] is, a gap of 11 years. What are the next two consecutive palindromic years after [year_end] with the same gap? Answer using two numbers (e.g.: [year_start] and [year_end]). <_tip>A palindromic number remains the same when its digits are reversed (e.g.: 2112). [rslt_a] | [rslt_b] <_answer_show>[rslt_a] and [rslt_b] [0-9]+ MatchAll <_rationale>From year 1000 to year 10000, palindrome years occur at 110 year intervals except for the end of each millennium that occur at a 11 years interval. <_name>Dartboard Logic All int [] numbers = new int [] { 2, 20, 39, 10, 6, 30, 39, 11, 31, 12, 34, 8, 18, 20, 2, 31, 4, 14, 26, 27, 26, 7, 20, 27, }; int [] ans = new int [] { 2, 20, 20, 39, 39, 6, 6, 30, 39, 39, 31, 31, 12, 12, 34, 18, 20, 20, 31, 31, 14, 26, 26, 27, 27, 26, 20, 20, 27, 27, }; int idx = random.Next (6); int value_a = numbers [4 * idx + 0]; int value_b = numbers [4 * idx + 1]; int value_c = numbers [4 * idx + 2]; int value_d = numbers [4 * idx + 3]; int answer_a = ans [5 * idx + 0]; int answer_b = ans [5 * idx + 1]; int answer_c = ans [5 * idx + 2]; int answer_d = ans [5 * idx + 3]; int answer_e = ans [5 * idx + 4]; <_question>On the dartboard below, where would you need to throw the darts to add 120 points in 5 throws? Answer using a list of numbers (e.g.: 4, 5, 6, 3, 2) <_tip>Only 3 of the 4 numbers in the dartboard are used to add 120 points. [answer_a], [answer_b], [answer_c], [answer_d], [answer_e] [answer_a] | [answer_b] | [answer_c] | [answer_d] | [answer_e] [0-9]+ MatchAll <_name>Horse race Logic All int men = 10 + random.Next (40); int horses = 10 + random.Next (40); int legs = 2 * men + horses * 4; int eyes = (men + horses) * 2; <_question>In a horse race there are people and horses. You count [eyes] eye and [legs] leg. How many horses are present? In a horse race there are people and horses. You count [eyes] eyes and [legs] legs. How many horses are present? [horses] <_rationale>Every person has two legs and every horse four (2 * [men] + [horses] * 4). Every person and every horse have also two eyes (2 * [men] + 2 * [horses]). <_name>Lever Logic All <_question>How much weight is needed at the point indicated by the question mark to balance the lever? <_tip>Consider the sentence attributed to Archimedes: 'Give me a lever long enough and a place to stand and I can move the Earth'. <_rationale>A lever is in equilibrium when the objects placed on it are at a distances reciprocally proportional to their weights. int right_pos = 2; int left_pos = 4; int left_weight = 2 + random.Next (8) * 2; int force = left_pos * left_weight; int right_weight = force / right_pos; [right_weight] int right_pos = 1; int left_pos = 4; int left_weight = 2 + random.Next (8) * 2; int force = left_pos * left_weight; int right_weight = force / right_pos; [right_weight] <_name>Multiple number Calculation All MultiOption | IgnoreSpaces int [] indexes_a = new int [] {2, 4, 8}; int [] indexes_b = new int [] {3, 9, 15}; int index_a = random.Next (3); int index_b = random.Next (3); int num_x = indexes_a [index_a]; int num_y = indexes_b [index_b]; int option_a = num_x * num_y * indexes_b [index_b]; // valid int option_b = num_y * num_x * indexes_a [index_a]; // valid int option_c = num_y * 3; int option_d = num_x * 4; int product = num_x * num_y; <_question>Which two numbers of the list below are both multiple of [num_x] and [num_y]? [option_answers] <_tip>A multiple is a number that may be divided by another number with no remainder. For example, 10, 15 and 25 are multiples of 5. <_answer>[option_a] and [option_b] <_rationale>[option_a] and [option_b] are both multiples of [num_x] and [num_y]. <_name>Cars in town Logic All MultiOption | IgnoreSpaces double all_cars = 40 + random.Next (4) * 10; double males_cars = 10 + random.Next (3) * 10; double females_cars = all_cars - males_cars; double option_a = females_cars / all_cars * 100; double option_b = females_cars + ((2 + random.Next (3)) * 5); double option_c = (all_cars - males_cars); double option_d = (all_cars - males_cars) + 1 + random.Next (10); <_question>In a small town, [all_cars]% of the inhabitants have a car and [males_cars]% have a car and are males. What percentage of the population are females and have a car? [option_answers] [option_c]% <_rationale>[females_cars]% ([all_cars] - [males_cars]) of the inhabitants are women and have a car. <_name>Compare variables Logic All MultiOption | IgnoreSpaces <_question>If p < x < q and r < y < s and you know that x < y is true, which of the following options is correct? [option_answers] <_rationale>If x < y, then p < x < y < s so s > p is true. s > p <_question>If p < x < q and r < y < s and you know that x > y is true, which of the following options is correct? [option_answers] <_rationale>If x > y, then r < y < x < q, so r < q is true. r < q <_name>Odd number Logic All MultiOption | IgnoreSpaces <_question>Given two integer numbers x and y, if x is even and y odd, which of the following expressions gives always an odd result? [option_answers] <_rationale>Multiplication of two even numbers always produces an even number, so x multiplied by 2 is even. Adding an odd number (y) to that even number always produces an odd number. 2x + y <_name>Warehouse Logic All MultiOption | IgnoreSpaces // These numbers produce always an integer as result int [] time = new int [] {30, 12, 42, 24, 36, 48, 18}; int index = random.Next (7); double friend = time[index]; double john_time = time[index] * 2; double john_speed = 1 / john_time; double friend_speed = 1 / friend; double answer_a = 1 / (john_speed + friend_speed); double answer_b = 1 / (2 * john_speed + friend_speed); double answer_c = 1 / (john_speed + friend_speed * 2); double answer_d = (0.90 / (john_speed + friend_speed)); John needs [john_time] hour to clean a warehouse and his friend needs half as many. How many hours would it take them to clean up the warehouse if they worked together? [option_answers] John needs [john_time] hours to clean a warehouse and his friend needs half as many. How many hours would it take them to clean up the warehouse if they worked together? [option_answers] // These numbers produce always an integer as result int [] time = new int [] {30, 12, 42, 24, 36, 48, 18}; int index = random.Next (7); double john_time = time[index]; double friend = time[index] * 2; double john_speed = 1 / john_time; double friend_speed = 1 / friend; double answer_a = 1 / (john_speed + friend_speed); double answer_b = 1 / (2 * john_speed + friend_speed); double answer_c = 1 / (john_speed + friend_speed * 2); double answer_d = (0.90 / (john_speed + friend_speed)); John needs [john_time] hour to clean a warehouse and his friend needs twice as many. How many hours would it take them to clean up the warehouse if they worked together? [option_answers] John needs [john_time] hours to clean a warehouse and his friend needs twice as many. How many hours would it take them to clean up the warehouse if they worked together? [option_answers] John cleans at the speed of 1 / [john_time] per hour and his friend at 1 / [friend]. Together they will need [answer_a] hour. John cleans at the speed of 1 / [john_time] per hour and his friend at 1 / [friend]. Together they will need [answer_a] hours. [answer_a] <_name>Two trucks Logic All MultiOption | IgnoreSpaces // num + (num / 2) - 15 = add int [] nums = new int [] {50, 70, 110, 130, 150, 210, 290, 310}; int [] adds = new int [] {60, 90, 150, 180, 210, 300, 420, 450}; int index = random.Next (nums.Length); int add = adds [index]; int heavier = nums [index]; int lighter = (nums [index] / 2) - 15; int answer_a = lighter; int answer_b = lighter + 2 * (2 + random.Next (20)); int answer_c = lighter + 2 * (2 + random.Next (10)); int answer_d = lighter - 2 * (2 + random.Next (3)); <_question>You have two trucks that have a total weight of [add] unit. If the lighter truck weights 15 units less that half of the weight of the heavier truck, what is the weight of the lighter truck? [option_answers] You have two trucks that have a total weight of [add] units. If the lighter truck weights 15 units less that half of the weight of the heavier truck, what is the weight of the lighter truck? [option_answers] <_rationale>The heavier truck weights [heavier] and the lighter [lighter]. [answer_a] <_name>Family relations Logic All MultiOption | IgnoreSpaces <_question>John's father's sister's sister-in-law is also? Do not assume that John has any relative that has not been mentioned. [option_answers] <_answer>His mother <_rationale>The sister's sister-in-law is John's father's wife, that is, John's mother. <_question>John's mother's brother's brother-in-law is also? Do not assume that John has any relative that has not been mentioned. [option_answers] <_answer>His father <_rationale>The brother's brother-in-law is John's mother's husband, that is, John's father. <_name>Third number Logic All MultiOption | IgnoreSpaces int [] x = new int [] {32, 51, 59, 35, 24}; int [] y = new int [] {18, 27, 21, 23, 28}; int [] z = new int [] {37, 27, 55, 38, 11}; int index = random.Next (x.Length); int three = (x [index] + y [index] + z [index]) / 3; int two = (x [index] + y [index]) / 2; int good_z = z [index]; int answer_a = good_z; int answer_b = good_z + 2 + random.Next (10); int answer_c = answer_b + 2 + random.Next (5); // Based on answer_b to avoid duplicated answers int answer_d = good_z - 2 - random.Next (10); <_question>The average of three numbers is [three]. The average of two of these numbers is [two]. What is the third number? [option_answers] <_rationale>It is the result of the operation: ([three] * 3) - ([two] * 2). [answer_a] <_name>Birthday Logic All MultiOption | IgnoreSpaces <_question>A girl once said: 2 days ago I was 18 years old. Next year I will be 21 years old. Can this be true? [option_answers] <_rationale>She was born 31st of December and she said this on 1st of January. [answer_a] <_name>Direction Logic All MultiOption | IgnoreSpaces <_question>I go south on an evening when the sun shines. To which side of me will my shadow fall? [option_answers] <_rationale>If I go south then east is to my left and in the evening the shadow falls east. To my left <_name>Two men Logic All MultiOption | IgnoreSpaces int [] dists_a = new int [] {3, 8, 12}; int [] dists_b = new int [] {4, 6, 9}; int [] dists_c = new int [] {10, 20, 30}; int index = random.Next (dists_a.Length); int dist_a = dists_a[index]; int dist_b = dists_b[index]; int answer_a = dists_c[index]; int answer_b = dists_c[index] + 2 + random.Next (10); int answer_c = answer_b + 2 + random.Next (5); // Based on answer_b to avoid duplicated answers int answer_d = dists_c[index] - 2; <_question>Two men starting at the same point walk in opposite directions for [dist_a] feet. Both turn left and walk another [dist_b] feet. What is the distance between them? [option_answers] <_rationale>Using the Pythagorean theorem, the solution is 2 by the square root of ([dist_a]^2 + [dist_b]^2). [answer_a]