PDA

צפה בגרסה המלאה : Project Euler



Sidis
30-07-2009, 17:09
למישהו יש שם משתמש? איך הולך לכם שם?

פעם היה לי שם משתמש, זכור לי שעניתי על לפחות 7 שזה נחמד בהתחשב בזה שלא חרשתי על זה. עכשיו פתחתי משתמש חדש, כי לא זכרתי את השם משתמש או את הסיסמא. בינתיים עניתי על 4 שאלות ואני אתחיל לנסות גם את ה-5.

אגב, היה לי מעט מוזר לראות שבפורום הנהדר, לא קיים דיון למשחק חשיבה/רצף חידות מתמטיות שכזה.

אריאל
30-07-2009, 17:20
תפרט קצת יותר על מה אתה מדבר?

KaMiKaZy
30-07-2009, 17:23
תפרט קצת יותר על מה אתה מדבר?

http://projecteuler.net

עניתי שם על 3 שאלות ביינתים.. הסתבכתי עם שאלה 3 :S (מציאת המחלק הראשוני הכי גדול של 60085147514)

Sidis
30-07-2009, 17:31
מצטער ששכחתי לתת קישור, חשבתי שכולם יידעו על מה אני מדבר. לא נורא.

שאלה 3 דווקא פשוטה. אתה עובד עם שפה מסוימת, או שעושה את זה במחשבון/ ידני?

אני עובד על 7 שהיא ממש קלה, אבל משום מה הc# שלי החליט להתחכם ולא להענות למה שאני מכוון בקוד שלי. לא נורא, נסדר את זה ונמשיך הלאה.

KaMiKaZy
30-07-2009, 17:33
אני עושה בPHP

Hurricane
30-07-2009, 17:39
פתרתי 49 שאלות שם. :P

KaMiKaZy
30-07-2009, 17:57
אוף חח סוף סוף הצלחתי את שאלה 3
שאלה מעצבנת d:

Sidis
30-07-2009, 19:47
שאלה 4 ממשיכה לעצבן אותי, אבל לפחות סיימתי את שאלה 9.

איך הצלחת 49 שאלות? זה מטורף.

עריכה : סיימתי גם את שאלה 6 החביבה.

Hurricane
31-07-2009, 08:07
גם לי בהתחלה היה קשה, ולא האמנתי לחבר שלי שאמר שהוא פתר 25 שאלות. אבל הפרויקט הזה באמת משפר את האלגוריתמיקה. :p

Ohadush
31-07-2009, 08:10
היי אני מת על אלגוריתמים מתוחכמים :)
אני אתעמק באתר יותר מאוחר.

Netanelm7
31-07-2009, 12:50
אתר מצויין!! אהבתי! :)

Ohadush
31-07-2009, 13:09
כן רק חבל שיש לי בעיה בקומפיילר eclipse .

Sidis
31-07-2009, 14:18
4 פתור, תודה לאל, בנוסף לעוד 9 חידות אחרות.

מישהו עשה את 12? הוא יוצא לי לא נכון בעליל ונראה לי שאני מפספס שם משהו. המטרה היא לא פשוט למצוא את המספר הראשון שיש לו 500 מחלקים?

Hurricane
31-07-2009, 14:46
לא. המטרה היא למצוא את המספר המשולשי (תרגום צולע) הראשון שיש לו 500 מחלקים.
המספר המשולשי n הוא סכום כל המספרים עד n. דוגמא: המספר המשולשי השביעי הוא: 1+2+3+4+5+6+7=28.

בהתחלה שפתרתי את התרגיל הזה, הרצתי את התוכנית במשך שעה ועדיין לא מצאתי את התשובה. החלפתי אלגוריתם, וזה מצא את התשובה תוך פחות משנייה. ^^"

Sidis
31-07-2009, 17:29
כמה ספרות יש למספר המסתורי הזה? המספר עם הכי הרבה מחלקים שעמד בתנאים הוא עד כה 17907120 ויש לו "רק" 480 מחלקים. או שהאלגוריתם של דפוק ( במטרה למצוא את המספר הוא עובר על 10000 מספרים משולשים) או שהמספר הזה נמצא הרחק הרחק.

Hurricane
31-07-2009, 17:43
יש למספר 8 ספרות, והוא גדול יותר מהמספר הזה.
תראה את הקוד, אולי אפשר לייעל אותו.

Sidis
31-07-2009, 19:17
לפחות האלגוריתם הלא יעיל שלי הביא את התוצאה הנכונה. המספר מקסים לגמרי, ומפחידה כמות המחלקים שלו.
עשית את שאלה 15?

Hurricane
31-07-2009, 19:27
כן.
רמז: תתחיל מהסוף ותשתמש במשולש פסקל.

Sidis
03-08-2009, 22:36
לא עשיתי את 15, אבל עשיתי כבר 19 שאלות. בזכות השאלות האלו אני אשכרה מרגיש איך היכולות שלי משתפרות, ובזכותו גם התחלתי להשתמש בpython שהיא שפה מושלמת לשאלות האלו, וממש קלה וכיפית (עד כמה שיצא לי להכיר אותה, שזה לא הרבה). ואגב , משולש פסקל = בינום?

אריאל
03-08-2009, 22:46
משולש פסקל = כלי עזר למציאת המקדמים של הבינום של ניוטון, (a+b)^n = ?

Hurricane
25-08-2009, 20:48
מעניין מה הם מקבלים על כל הפרסומות האלו... ם:

Netanelm7
25-08-2009, 22:53
בטח כסף... p=

Sidis
27-08-2009, 20:21
אחרי שפתרתי את חידה מספר 23, הצטרפתי ללבל 1 סוף סוף. כרגע אין עוד הרבה חידות שאני בטוח שאני מסוגל לפתור, אבל גם לא האמנתי כשנרשמתי שאני אצליח להגיע ללבל 1 ואפתור 25 חידות. יש לי בעיה במיוחד בשאלות כמו 18 ו22 שלא ממש הבנתי איך אני יכול להכניס את הנתונים הללו לc# או לpython.

MaorGoaz
11-10-2009, 02:18
היי, מישהו יכול להסביר לי למה זה לא עובד? שאלה שלוש:



static void Main(string[] args)
{
for (double i = Math.Sqrt(600851475143); i <= 2; i--)
{
if ((600851475143 % i) == 0)
{
for (double j = i; j <= 2; j--)
{
if ((i % j) != 0)
{
Console.WriteLine(i+" Is a prime number");
}
}
}
}
Console.ReadKey();
}


הוא משום מה מדלג ישר לשורה:



Console.ReadKey();


באותה מאיית שנייה שהוא נפתח, ללא שום חישוב. עזרה?

Weirdo
11-10-2009, 10:36
בגלל זה double, אני לא בטוח שאפשר לעשות mod בdouble.

Hurricane
11-10-2009, 10:40
אפשר.
שים לב שבתנאי של הלולאה עשית ש- i קטן או שווה ל- 2. אבל ברור ש- i גדול מאוד מ- 2, ולכן זה לא נכנס בכלל ללולאה.

Weirdo
11-10-2009, 11:01
אפשר.
שים לב שבתנאי של הלולאה עשית ש- i קטן או שווה ל- 2. אבל ברור ש- i גדול מאוד מ- 2, ולכן זה לא נכנס בכלל ללולאה.
מורזר תמיד חשבתי שאי אפשר, כאילו
אם יש לך
123.433 ואז /10
אז זה לא יביא לך 12,לא?

MaorGoaz
11-10-2009, 12:05
למה שזה לא יכנס?
בגלל הטווח?

גל_כהן
11-10-2009, 12:24
מאור, שים לב שמה שעשית זה הכנסת ל-i שורש של המספר העצום שנתון בשאלה וברור ששורש
זה (מבלי לחשב אותו בכלל) גדול מאוד מ-2. אם אתה מגדיר i \leq 2 כתנאי כניסה ללולאה,
התנאי מתקבל כשקרי כבר בפעם הראשונה ולכן התוכנית מדלגת מעל לכל הלולאה, ישר אל הפקודה האחרונה.
תקן את התנאים בלולאה שלך ונסה לפתור שוב.

בהצלחה.

יום טוב :) !

Hurricane
11-10-2009, 12:54
מורזר תמיד חשבתי שאי אפשר, כאילו
אם יש לך
123.433 ואז /10
אז זה לא יביא לך 12,לא?


System.out.println(123.34 % 1); // Prints 0.34
System.out.println(123.34 % 10); // Prints 3.34
System.out.println(123.34 % 100); // Prints 23.34
System.out.println(123.34 % 1000); // Prints 123.34
System.out.println(123.34 % 10000); // Prints 123.34
System.out.println(123.34 % 100000); // Prints 123.34

MaorGoaz
11-10-2009, 13:11
אוי, איזה חמור יצאתי. תיקנתי. תודה.
משום מה, הוא עדיין קופץ לReadKey.

Netanelm7
11-10-2009, 15:37
תעלה את הקוד החדש וננסה לעזור...

MaorGoaz
11-10-2009, 15:44
static void Main(string[] args)
{
for (double i = Math.Sqrt(600851475143); j>= 2; i--)
{
if ((600851475143 % i) == 0)
{
for (double j = i; j >= 2; j--)
{
if ((i % j) != 0)
{
Console.WriteLine(i+" Is a prime number");
}
}
}
}
Console.ReadKey();
}

Hurricane
11-10-2009, 16:26
רשמתי j>=2 במקום i>=2.

MaorGoaz
11-10-2009, 16:37
כן, עדיין יוצא..



static void Main(string[] args)
{
for (double i = Math.Sqrt(600851475143); i >= 2; i--)
{
if ((600851475143 % i) == 0)
{
for (double j = i; j >= 2; j--)
{
if ((i % j) != 0)
{
Console.WriteLine(i+" Is a prime number");
}
}
}
}
Console.ReadKey();
}

m1o2
26-03-2011, 14:24
בפעם האחרונה שבדקתי הייתי בעמוד הראשון עם המשתמשים הישראלים שפתרו הכי הרבה... לא יודע מה עם עכשיו.

בכל אופן, אחלה פרויקט הם פתחו שם...אני עדיין זוכר את רמת הסיפוק כאשר מצליחים לפתור חידה קשה.