CHALLENGE: Case of the missing crystal eggs

The scientists noticed a set of crystal eggs had been stolen when they reported to work early Tuesday morning. Reliable witnesses say the eggs were definitely there on Monday morning. The thieves must have come in sometime between Monday morning and Tuesday morning.

The camera system had been disconnected, but the laboratory had a backup system: a webcam took a picture of the crystals every 5 minutes and stored it securely. Every hour 12 pictures were taken, so in the 24-hour period, 12 * 24 = 288 pictures were taken.

Write rough pseudocode to find out the time of the crime as quickly as possible

Answers
A naive approach would be to just iterate through all the pictures and see when the eggs are gone... what would be a quicker way? Is there any way we can avoid checking some of the pictures?
Jake M.
28 September 2016
This is an example of a search algorithm.How you can search through a list depends upon whether the list is sorted or not.  The only way to search through a completely random list is to do so one by one, starting at the beginning and ending at the found position.The list of pictures is actually ordered because the pictures start as a series with the eggs in place and ends with a series with the eggs gone.  This means you can use a binary search.First, let us assume we have a function to examine the pictures and determine whether the eggs are in place. Let’s call it FUNCTeggs(index) and assume that it returns a value of TRUE if the eggs are present and FALSE if they are not. In practice this would be a complicated bit of software and might take some time to run, so we need to call it as few times as possible.We will need some other variables as well:upperbound – the upper number in the binary searchlowerbound – the lower number in the binary searchpicnum – the number of the picture we are looking atpic1, pic2 – the results of the search for two consecutive pictures.We are looking for two different results for two consecutive pictures, one with eggs, the next, without eggs. This is found using “pic1 XOR (exclusive OR) pic2” which is only TRUE if the two pictures are different.If unsuccessful we need to decide if we need to go forward along the list or to backtrack. (this is why we need the list ordered) This is decided by “pic1 AND pic2”, if both are TRUE we need to go forwards down the list, otherwise we need to go backwards towards the start.  This is done by changing the upper or lower boundary.The “picnum>=287” terminates the loop in the event of a null search. You might want to confirm this condition.upperbound ←288lowerbound ← 1BEGIN LOOPpicnum ← INT((upperbound+lowerbound)/2)pic1 ← FUNCTeggs(picnum)pic2 ← FUNCTeggs(picnum+1)IF pic1 XOR pic2 THEN exit loopIF picnum >= 287 THEN exit loopIF pic1 AND pic2 THEN lowerbound ← picnum ELSE upperbound ← picnumCONTINUE LOOPA simple search, if the FUNCTeggs() function takes 5 minutes, might take up to 24 hours to fullfil (288 calls).  With this binary search the FUNCTeggs() will be called a maximum of 18 times which would mean a maximum of an hour and a half. This routine will call FUNCTeggs() multiple times for the same picture during a search so a method of producing a trail of results is needed to avoid this.On a successful exit “picnum” contains the number of the last picture that contains the eggs.
Iain S.
28 September 2016
Add an answer

Similar questions

What does HTML stand for and do?


Hypertext Markup Language

As you can probably guess from the title, HTML stands for Hypertext Markup Language and is a language used by web browsers to interpret and represent text, images, videos, audio and other mediums for people on web pages. HTML defines the structure of a website while other technologies their appearance (CSS) and behaviour (JavaScript). "Hypertext" describes the links between pages of content on the web that you can access immediately by clicking on said link. "Markup" refers to the method by which text, images, and other content is annotated to then be displayed. Examples of the these markup elemetns include <head>, <title>, <body>, <header>, <footer>, <article>, <section>, <p>, <video>, <ul>, <ol>, <li> and many more.

What is HTML Used For?

HTML was first developed by physicist Tim Berners-Lee at CERN, the European Organization for Nuclear Research in 1990 when looking for a way that researchers could share documents with each other. This was the foundation of the World Wide Web. HTML allows people to create and design web pages using elements such as paragraphs, headings, links, quotes, images etc. It is not a programming language, so doesn't have a dynamic functionality, rather it helps to organize and format a page. It uses simple coding to denote how each part of the page should look. For example, you could create a paragraph by placing the relevant text within 2 tags <p> and </p>. HTML is now an official web standard which is monitored and developed by the World Wide Web Consortium (W3C

Urgent tutor help

I have an assignment on Java coding need help with it. The assignment detail is below :

The overall aim of this assignment is to implement a simple graphics tool. This must be built as a graphical application using the Java Swing and AWT classes. The software will allow users to type in simple commands which cause a “pen” to move around a virtual canvas area drawing lines as it moves. The final product should be a fully working application which includes a typical application window, containing a menu bar and supporting dialogue boxes.

As well as implementing a programmatic solution to the defined requirements, you are required to submit a graphical representation of your final solution as a Unified Modelling Language (UML) class model. This class model should show all classes used in your solution, along with all attributes and methods which you yourself have written. Although classes used from the Swing library should be shown there is no need to display their attributes and methods.

Requirement 1 – basic application

The first requirement is to develop a simple GUI which contains an outer window (frame), a canvas drawing area, a console type text input area, and a menu bar. The menu bar should contain at least a ‘File’ and a ‘Help’ menu. The ‘File’ menu should contain the options “New”, “Load”, “Save” and “Exit”. The ‘Help’ menu should contain an “About” option. The application window should be resizable by the user. For this first requirement the menu options should simply act as stubs, later requirements will provide the actual functionality. When selected each option should pop–up a dialogue saying that the option has been selected.

Requirement 2 – command support

The second requirement is to implement some basic commands to allow drawing. The users should be able to type in these commands within the console text area. The “New” menu option should cause the canvas to be cleared. The application should be able to spot invalid commands and report this to the user.

The commands to be supported are shown in the following table.

Command:Description penup: Lifts the pen from the canvas, so that movement does not get shown. pendown : Places the pen down on the canvas so movement gets shown as a drawn line. left : Turn the direction 90 degrees to the left. right : Turn the direction 90 degrees to the right. forward : Move forward the specified distance. back : Move backwards the specified distance. red : Sets the output pen colour to red. green: Sets the output pen colour to green. blue : Sets the output pen colour to blue. reset: Resets the canvas to its initial state.

.

Java Assignment

Hi. I am stuck on this question. Any help will be appreciated. The overall aim of this assignment is to implement a simple graphics tool. This must be built as a graphical application using the Java Swing and/or AWT classes. The software will allow users to type in simple commands which cause a virtual pen (sometimes it is also called a turtle after the Logo programming language which was popular in schools in the 1980s) to move around a virtual canvas area drawing lines as it moves. The final product should be a fully working application which includes a typical application window, containing a menu bar and supporting dialogue boxes. You should use GraphicsPanel.java inside your program. It sets up a canvas for you to draw on and displays a simple turtle. You can modify it as you see fit. Requirement 1 – basic application 20 marks The first requirement is to develop a simple GUI which contains an outer window (frame), a canvas drawing area, a console type text input area, and a menu bar. Themenu bar should contain at least a ‘File’ and a ‘Help’ menu. The ‘File’ menu should contain the options “New”, “Load”, “Save” and “Exit”. The ‘Help’ menu should contain an “About” option. The application window should be resizable by the user. For this first requirement the menu options can be blank and have no attached functionality, subsequent requirements will provide the actual functionality. When selected each option should pop–up a dialogue saying that the option has been selected. Program runs Panel for drawing is displayed You need to demonstrate that the panel can be drawn on (note if you have implemented subsequent requirements they will do this). Console text area Note this could be the console itself or some sort of component such as a TextArea or TextField. You need to demonstrate that text can be entered and minimally echoed back (note if you have implemented subsequent requirements they will do this). (5 marks) File Menu Items with pop ups for each New (1 mark) Load (1 mark) Save (1 mark) Exit (1 mark) Help Menu About (1 mark) UML Diagram (10 marks) Should show internal detail of your classes (including GraphicsScreen.java). Any Swing/AWT classes or other external classes should be shown as boxes only. Requirement 2 – command support 35 marks The second requirement is to implement some basic commands to allow drawing. The users should be able to type in these commands within the console text area. The “New” menu option should cause the canvas to be cleared. The application should be able to spot invalid commands and report this to the user. The commands to be supported are very explicit and MUST match those shown in the following table. The command must be typed in by the user and not selected from a menu as some of them will have parameters which MUST be typed with the command, for example “forward 90”. The parameters must not be entered separately, either after the command or in a separate text field. These commands must not be entered using separate textfields for command and parameter. When the program first runs the turtle/pen should be set to the middle of the canvas and point down the screen and the pen should be set to “down”. Hence if the first command was “forward 100” a line from the middle of the screen to nearer the bottom would be drawn. Requirement 3 – loading, saving and exiting. 20 marks The main aim of requirement three is to implement the remaining menu options. The “Load” and “Save” should allow the user to select a file name via a dialogue box. The current image should then be either loaded or saved to a file. If the user attempts to load a new image without the current one been saved first then a warning dialogue should be shown to the user, which should provide the opportunity for the current image to be saved first. The “Exit” and “About” menu options should also be completed. During exit a similar check should be made to see whether the user is attempting to exit without saving changes.

Assignment Help Please

Your boss at Innovations R Us, Rita Webb, has agreed to equip a selected work team with SMART devices. Instructions: 1. Rita asks you to prepare a report for the Purchasing Committee that will analyse the advantages and disadvantages of each type of device for the staff team to use. Relevant factors could be:  Specific features/advantages at least 2 devices relevant for a specific work team  Purchase price/budget considerations  Ongoing costs/future proofing  Information technology trends for business use  Need for staff training  Operability with existing operating systems/technology platforms e.g. Windows, iOS or Android  Other relevant issues such as types of software to be run 2. Innovations R Us is an authorised reseller of IT equipment. As the report author, you are free to make any realistic assumptions about this NZ based company and its operations. However the information presented about the appropriate technology, must be from actual acknowledged sources. E.g. online publications and web sites of similar businesses. 3. The report will need to come to some valid conclusions and make recommendations based on your investigation. 4. The report must be structured according to an acceptable format such as found at: http://www.monash.edu...ogy/report/1.3.3.xml and will include:  Cover page  Table of contents  Introduction  Relevant sections/subsections  Conclusions  Recommendations  Reference list/bibliography  Appendices (where relevant) 5. References must be formatted using APA (MS Word APA acceptable)