התגובות שלי בפורום
-
מאתתגובות
-
yoav zilbermanמשתתףyoav zilbermanמשתתף
אני מעוניין, אנא רישמו אותי
yoav zilbermanמשתתףלדעתי האורך הוא שתי שליש כפול שורש 10 : מותחים ישר ממרחק שישית מקודקוד הריבוע למרחק חצי מקודקוד צלע שממול הישר שהוצא ממשיכים בהעברת ישר מחצי הצלע בחזרה אל הצלע שממנה יצא במרחק שישית מהקודקוד שבעברה השני של הצלע.
האם יש אורך קצר יותר?yoav zilbermanמשתתףמדהים! לא יאומן!
זה בדיוק כמו תורת הקוונטים: המציאות תלויה בנקודת מבט של הצופה.
וכמו שניסח זאת איינשטיין בחוסר אמונה מוחלטת: "מה, אם אנחנו לא מסתכלים על השמש היא לא קיימת?"
הביאו עוד חידות נחמדות כאלה, פשוט יפה!
yoav zilbermanמשתתףאף אחד לא מצליח??
yoav zilbermanמשתתףהייתי נשאר עם התיבה שלקחתי. ההסתברות בכל תיבה זהה, זה שהמנחה פתח את התיבה האחרת לא משנה את ראיית העולם .(אני חושב..).
מה התשובה הנכונה?
yoav zilbermanמשתתףשלום רב, פיתרון נכון ויפה!
לגבי תיקונך: אם היית רוצה שהתוכנית תעבוד באופן כללי על כל סוג של מערך היית צודק, אך מכיוון שמדובר בתוכנית שייעודה הראשוני לעבוד רק עבור מטריצות ריבועיות אז התוכנית ממלאת את מטרתה.
בברכת חג שמח,
יואב זילברמן
yoav zilbermanמשתתףבפתרון שלך יש 12 פרשים, לא 9!
yoav zilbermanמשתתףהפלט של התוכנית הוא 16 ולא 18 הייתה טעות הקלדה……
yoav zilbermanמשתתףמישהוא יכול לתרגם לג'אווה אני לא מבין כלום….
yoav zilbermanמשתתףטעות הקלדה, התשובה היא 16
yoav zilbermanמשתתףהתשובה היא 18 .
האם זה נכון?
להלן תוכנית המחשב שמחשבת את המבוקש:
import java.util.*;
public class chess
{
static Scanner yoav=new Scanner(System.in);
static boolean peula(char[][]matrix)
{
int mone=0;
for(int i=0;i<=matrix.length-1;i++)
{
for(int j=0;j<=matrix.length-1;j++)
{
if(matrix[j]!=' ')
{
mone++;
}
}
}
if(mone==Math.pow(matrix.length,2))
{
return true;
}
else
{
return false;
}
}
public static void main(String[]args)
{
int mone=9,currentmone=0;
int x=0;
char[][]matrix=new char[8][8];
for(int i=0;i<=7;i++)
{
for(int j=0;j<=7;j++)
{
matrix[j]=' ';
}
}
while(peula(matrix)==false)
{
for(int i=0;i<=7;i++)
{
for(int j=0;j<=7;j++)
{
if(matrix[j]!='a')
{
if(matrix[j]==' ')
{
currentmone++;
}
if(j-1>=0 && i-2>=0 )
{
if(matrix[i-2][j-1]==' ')
{
currentmone++;
}
}
if(j+1<=7 && i-2>=0)
{
if(matrix[i-2][j+1]==' ')
{
currentmone++;
}
}
if(i+2<=7 && j-1>=0)
{
if(matrix[i+2][j-1]==' ')
{
currentmone++;
}
}
if(i+2<=7 && j+1<=7)
{
if(matrix[i+2][j+1]==' ')
{
currentmone++;
}
}
if(j+2<=7 && i-1>=0)
{
if(matrix[i-1][j+2]==' ')
{
currentmone++;
}
}
if(j-2>=0 && i-1>=0)
{
if(matrix[i-1][j-2]==' ')
{
currentmone++;
}
}
if(j+2<=7 && i+1<=7)
{
if(matrix[i+1][j+2]==' ')
{
currentmone++;
}
}
if(j-2>=0 && i+1<=7)
{
if(matrix[i+1][j-2]==' ')
{
currentmone++;
}
}
}
if(currentmone==mone)
{
matrix[j]='a';
if(i+1<=7 && j-2>=0)
matrix[i+1][j-2]='*';
if(i+1<=0 && j+2<=7)
matrix[i+1][j+2]='*';
if(i-1>=0 && j-2>=0)
matrix[i-1][j-2]='*';
if(i-1>=0 && j+2<=7)
matrix[i-1][j+2]='*';
if(i+2<=7 && j+1<=7)
matrix[i+2][j+1]='*';
if(i+2<=7 && j-1>=0)
matrix[i+2][j-1]='*';
if(i-2>=0 && j+1<=7)
matrix[i-2][j+1]='*';
x++;
}
currentmone=0;
}
}
mone–;
}
System.out.println(x);
}
}yoav zilbermanמשתתףלסעריה שלום!
לפי מה שאני יודע את פקודת סייל מפעילים על ממשיים ולא על שלמים. מכיוון שמשתנה הוגדר כשלם לפעולה לא תהיה משמעות ולא תשיג את מבוקשה. נסה להריץ את התוכנה עבור קלט 8 ו-9 וראה האם הפלט הרצוי מתקבל.
בברכת חג שמח,
יואב זילברמן
yoav zilbermanמשתתףנכון מאוד!
כל הכבוד!
yoav zilbermanמשתתףמתנצל, פתרון שרשמתי אינו נכון.
אני באמצע בניית תוכנה שתחשב, מחר אפרסם פתרון מלומד, נא לא להתייחס לתשובה קודמת!
יואב
-
מאתתגובות