Determine All Of Perfect Squares Between 1 And 100 - Precision Error?
Mar 26, 2015
I am teaching myself Java and am trying to write a function that will determine all of the perfect squares between 1 and 100 but am running into a problem...
Here's my code:
package sqrroot;
public class SqrRoot {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
double sroot, rerr;
int count = 0;
for(double num = 1.0; num <= 100.0; num++){
[Code] ....
and here is the output:
run:
0.0
1.0 is a perfect square.
0.0
4.0 is a perfect square.
[Code] ....
There are 49 perfect squares between 1 and 100.
BUILD SUCCESSFUL (total time: 6 seconds)
Which is clearly wrong. Is there something wrong with my code or is this due to inherent imprecision in the double type or the Math.sqrt function?
I am supposed to create a method that simulates a perfect shuffle of a given array of integers. According to the assignmment, this is what a perfect shuffle is:
This procedure is called a perfect shuffle if the interleaving alternates between the two half-decks.Unfortunately, the perfect shuffle comes nowhere near generating all possible deck permutations.In fact, eight shuffles of a 52-card deck return the deck to its original state!Consider the following perfect shuffle algorithm that starts with an array named cards that contains 52 cards and creates an array named shuffled.
Initialize shuffled to contain 52 empty elements. Set k to 0. For j = 0 to 25, − Copy cards[j] to shuffled[k]; − Set k to k+2. Set k to 1. For j = 26 to 51, − Copy cards[j] to shuffled[k]; − Set k to k+2.
This approach moves the first half of cards to the even index positions of shuffled, and it moves the second half of cards to the odd index positions of shuffled.The above algorithm shuffles 52 cards. If an odd number of cards is shuffled, the array shuffled has one more even-indexed position than odd-indexed positions. Therefore, the first loop must copy one more card than the second loop does. This requires rounding up when calculating the index of the middle of the deck. In other words, in the first loop j must go up to (cards.length + 1) / 2, exclusive, and in the second loop j most begin at (cards.length + 1) / 2.
I'm stuck trying to figure out why this isn't compiling.
Bumper.java:87: error: possible loss of precision myX = (Math.random()* (rightEdge-myXWidth) + myXWidth / 2); ^ required: int found: double Bumper.java:88: error: possible loss of precision myY = (Math.random()* (bottomEdge-myYWidth) + myYWidth / 2); ^ required: int found: double
I was asked to write code to calculate a person's calories burned/min. This is what I got. The problem is I keep getting an error.
--------------------Configuration: <Default>-------------------- C:Program FilesJavajdk1.7.0_72CaloriesBurned.java:22: error: possible loss of precision caloriesBurnedPerMinute = 0.0175 * METS * weightInKg; ^ required: int found: double 1 error
Loss of precision? What does that mean? Do I have to change weightInKg into some other number type?
import java.util.Scanner; public class CaloriesBurned { public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); int runningHours, basketballHours, sleepingHours, METS, caloriesBurnedPerMinute;
I'm trying to write code for a program that checks numbers upto a number that the user gives. I've looked around, and the nearest matches I can see are people using for loops with predetermined amounts of looping.The only real tools I'm allowed to use are basic arithmetic, and while loops. The program is supposed to have 2 nested while loops.
import java.util.Scanner; import java.io.*; public class questionTwo234234 { public static void main(String[] args){
import java.util.Scanner; public class pdonahue_Perfect { public static void main (String args[]) { int test; int value=0; Scanner input = new Scanner(System.in);
[code]....
i have just a couple of issues when running my program. -First, When i enter 0 it should print..
Please enter a possible perfect number: 0 0:NOT PERFECT
-Second, when i get a perfect number. it should show the answer in descending order..
Please enter a possible perfect number: 6 6:3 2 1
mine shows: Please enter a possible perfect number: 6 6: 1 2 3
**everything else compiles correctly with no errors
Write a program that prompts the user to enter an integer m and find the smallest integer n such that m * n is a perfect square. (Hint: Store all smallest factors of m into an array list. n is the product of the factors that appear an odd number of times in the array list. For example, consider m = 90, store the factors 2, 3, 3, 5 in an array list. 2 and 5 appear an odd number of time in the array list. So, n is 10.)
so far my program is just like this.
import java.lang.Math; import java.util.Scanner; public class PerfectSquare { public static void main(String[] args) { Scanner m = new Scanner(System.in); int Fint;
[Code] .....
how do i make the program find the smallest integer n?
so for my computer science class, we have the following problem:
In your documentation be sure to say which loop you thought was easier to implement for this program and why Write a program that produces the following outputs. The first line of output must be written using a For-Loop. The second, using a While-Loop and the third using a Do-Loop.
You look at the program and smile because you see that the series is just the numbers 1-10 squared...just one line is in reverse order. No problem! As you start typing you discover that the number 8 key on your keyboard is not working. For this program you are unable to use the multiplication key
So, back to the drawing board. By staring at the sequence a light comes on and you are able to quickly finish this program WITHOUT using mulitiplication (or the Math class/ solve with arithmetic operators +, - or / ) .
Sample output:
For Loop 1 4 9 16 25 36 49 64 81 100
While Loop 100 81 64 49 36 25 16 9 4 1
Do While Loop 1 4 9 16 25 36 49 64 81 100
I have the "for" done, but I did it with a "for" in the beginning but then had a multitude of nested "if" loops so that I could do 7*7=7+7+7+7+7+7+7
So I need to create a 10x10 grid for a snakes and ladders board, the board loads but i cant figure out how to add numbers to the squares. Here is my code :
import java.awt.*; import javax.swing.*; public class Board { //Creating the array int[][] numbers=new int[10][10]; public static int rows = 10; public static int columns = 10; public static Color col1 = Color.green;
I know I can calculate the sum of squares as such:
// SumSquares.java: calculate the sum of two squares class SumSquares { static int sumSquares(int a, int B)/>/> { int asquare; int bsquare;
[Code] ....
But how can I modify the code so that it inputs a list of integer values in the range of -100 to 100 from the keyboard and computes the sum of the squares input values. And how would I go about using exception handling to ensure that the input values are in range and are legal integers.
Ok, so in my quest to achive perfect ray casting and line/plane intersection, what I believe to be my last problem is precision of a float. I need some precision (0.000) but I am dealing with the difference of (-1.000000000) and (-1.000000002), where the second number would be completely off. I looked at DecimalFormat, but that just puts it into a string, I need actual loss of precision.
Java Code:
DecimalFormat form = new DecimalFormat("0.00"); String newX = form.format(x); String newY = form.format(y); String newZ = form.format(z); x = Float.parseFloat(newX); y = Float.parseFloat(newY); z = Float.parseFloat(newZ); mh_sh_highlight_all('java');
import java.awt.*; public class Square { private double x,y; // Current position of the square. private Color color; // The color of the square. private int side; // The side of the square public Square() // constructor
[Code] .....
This is the square class, it draws an orange square that moves around in the applet viewer, works fine and as it supposed to do.
Ship:
package assignment1;
import java.awt.*; public class Ship { private Square[] fleetMembers; // declare fleetMembers as an array of Square private int total = 5; // Max number of squares in fleet private double x,y; Ship() // Constructor
[Code] ....
This is my FleetOfShips code. It is supposed to be a set of ships moving around together, but for unknown to me reasons it doesn't work. It does compile without any problems but when I run the applet it doesn't do anything.
I'm having trouble filling in the blank squares on a Minesweeper game. What I am trying to is, if a user clicks a square and that square(s) does not have a bomb in it, or adjacent to it, should be set to an empty square.
Here's my recursive method below:
public void revealZeros(){ for(int x = -1; x <= 1; x++) for (int y = -1; y <= 1; y++){ Square zeroSquare = (Square)board.getSquareAt(xLocation+x, yLocation+y); if (!(zeroSquare.SquareHasBomb)){ setImage("images/empty.jpg"); } } revealZeros(); }
I am traversing around the square that the user clicks on with the use of two for-loops. Getting the square at that location and then applying an empty square image. On that square.
The function should then recurse itself and go onto the next square, if the next square does not have a bomb or does not have an adjacent bomb.
I know I can calculate the sum of squares as such:
// SumSquares.java: calculate the sum of two squares class SumSquares { static int sumSquares(int a, int B)/>/> { int asquare; int bsquare;
[Code] .....
But how can I modify the code so that it inputs a list of integer values in the range of -100 to 100 from the keyboard and computes the sum of the squares input values. And how would I go about using exception handling to ensure that the input values are in range and are legal integers.
I have run into a bit of a head scratcher, at least to me. I am building multiple rectangles using double precision. I had to switch from int to double due to another issue that requires decimal places. Now, my fillRect (last line in the code section I posted) is causing an error as it only wants to work with int.
public void draw(Graphics2D g2) { // check that sizes are above 0 if ((rectWidth <= 0) || (rectHeight <= 0))
I have code for precision and recall testing for search engines. I am trying to run it in Newbeans 8.0, but I am getting the common error in UnsupportedOperationException
I have tried making files and directories as the given in the code file. I am attaching the two files here.