| | |
homework assignment help
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
hi. new here. Im a freshman at UCSB and im taking my first c++ class. I got this assignment in class and i was hoping for some tips.
The value of pi to 15 decimal places is PI = 3.141592653589793 . . . Your job is to write a
program that can be used to find decent approximations to PI. More specifically, your program must find
integers N and D such that the fraction N/D is the best possible approximation to PI and such that D <
1,000,000.
I have already set up nested while loops to chug through the fractions and limited the numerator to n <= 3145926. I also set a if condition right in between the while to reduce the numer of times it goest through the calculations by narrowing the numbers between 3 and 4( like pi). such that if( 3*d < n && 4*d > n){
Now the thing works but it takes about 6 hrs to run and for this project the instructor wants us to make one that runs in 2 min or less. I was wondering if anyone has any tips that may help.
thank you
bw
The value of pi to 15 decimal places is PI = 3.141592653589793 . . . Your job is to write a
program that can be used to find decent approximations to PI. More specifically, your program must find
integers N and D such that the fraction N/D is the best possible approximation to PI and such that D <
1,000,000.
I have already set up nested while loops to chug through the fractions and limited the numerator to n <= 3145926. I also set a if condition right in between the while to reduce the numer of times it goest through the calculations by narrowing the numbers between 3 and 4( like pi). such that if( 3*d < n && 4*d > n){
Now the thing works but it takes about 6 hrs to run and for this project the instructor wants us to make one that runs in 2 min or less. I was wondering if anyone has any tips that may help.
thank you
bw
•
•
Join Date: Aug 2005
Posts: 80
Reputation:
Solved Threads: 2
Well, try all numbers from D to 1,000,000. I was able to write a program that calculates this in under 20 seconds.
BestPi: 3.141592653588651 3126535/995207
I used one loop that went from D equals 1 to 1,000,000, the interior loop is where it gets tricky. Like you said, the ratio of N/D has to be between 3 and 4...
3 < N/D < 4
3*D < N < 4*D
That's all you get without posting your code.
-Fredric
BestPi: 3.141592653588651 3126535/995207
I used one loop that went from D equals 1 to 1,000,000, the interior loop is where it gets tricky. Like you said, the ratio of N/D has to be between 3 and 4...
3 < N/D < 4
3*D < N < 4*D
That's all you get without posting your code.
-Fredric
•
•
•
•
Originally Posted by bigwillis234
Now the thing works but it takes about 6 hrs to run
Post your program and I'm certain someone will help you with it.
this is what i got now. it still takes a long time. like an hour
int n, d=1, n2, d2;
double pie= 3.141592643563118, guess, piguess = 3.15;
int main()
{
while(d <= 1000000) { /* d goes to 1000000 */
n=3.1*d; /* started n at 3.1 * to get right to pi area*/
while(n <= 3.2*d ){ /*shortened loop for values */
guess = fabs(((double)n/d) - pie); /*abs value to compare guess*/
if( guess < piguess ){
n2= n;
d2= d;
piguess= guess;
}n++;
}d++;
}
printf( "%d / %d", n2, d2);
int n, d=1, n2, d2;
double pie= 3.141592643563118, guess, piguess = 3.15;
int main()
{
while(d <= 1000000) { /* d goes to 1000000 */
n=3.1*d; /* started n at 3.1 * to get right to pi area*/
while(n <= 3.2*d ){ /*shortened loop for values */
guess = fabs(((double)n/d) - pie); /*abs value to compare guess*/
if( guess < piguess ){
n2= n;
d2= d;
piguess= guess;
}n++;
}d++;
}
printf( "%d / %d", n2, d2);
•
•
Join Date: Jul 2004
Posts: 494
Reputation:
Solved Threads: 21
Algorithm efficiency is dependant upon eliminating fluff. For example, eliminate reducable fractions. (You've already tested it before... 1/3 ======= 2/6)
www.uncreativelabs.net
Old computers are getting to be a lost art. Here at Uncreative Labs, we still enjoy using the old computers. Sometimes we want to see how far a particular system can go, other times we use a stock system to remind ourselves of what we once had.
Old computers are getting to be a lost art. Here at Uncreative Labs, we still enjoy using the old computers. Sometimes we want to see how far a particular system can go, other times we use a stock system to remind ourselves of what we once had.
And you may want to break out of the loop when you find an answer.
"One of the methods used by statists to destroy capitalism consists in establishing controls that tie a given industry hand and foot, making it unable to solve its problems, then declaring that freedom has failed and stronger controls are necessary." --Ayn Rand
![]() |
Similar Threads
- I need help with doing my Java homework. (Java)
- Hi, would you mind helping me with my homework? (C)
- hw assignment help on selection & merge sort (C)
- homework question on class...multiple choice (C++)
- Help with an Array GRading assignment (Java)
Other Threads in the C++ Forum
- Previous Thread: C++/OpenGL/GLUI Linker problems
- Next Thread: blink a text??
| Thread Tools | Search this Thread |
api array based binary bitmap c++ c/c++ calculator char char* class classes code coding compile console conversion count database delete deploy desktop developer directshow dll download dynamic dynamiccharacterarray email encryption error file forms fstream function functions game givemetehcodez google graph gui homeworkhelp iamthwee ifstream input int java lib linkedlist linker linux list loop looping loops map math matrix memory multiple news node number numbertoword output pointer problem program programming project python random read recursion recursive reference return rpg sorting string strings temperature template templates test text text-file tree unix url variable vector video visualstudio win32 windows winsock word wordfrequency wxwidgets







)