הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   יש אפשרות לעשות את כל הקומביציות האפשריות של אותיות ומספרים ב C#? (https://hosts.co.il/forums/showthread.php?t=37410)

Ori The Man 05-01-07 15:05

יש אפשרות לעשות את כל הקומביציות האפשריות של אותיות ומספרים ב C#?
 
יש אפשרות לעשות את כל הקומביציות האפשריות של אותיות ומספרים ב C#?
למשל
a
aa
aaa
aa1
aab
וכו'?
את כל האפשרויות
למשל הגדרתי את הסיסמה בתור ori
אז שזה ינסה את כל הסיסמאות עד שיגיע לסיסמה שהיא ori ואז ירשום לי the pass is: ori

Oded 05-01-07 15:46

אני אומנם לא יודע C#, אבל לולאה עם שימוש בטבלת ה-ASCII תוכל לסדר לך את העיניין...
יש לך פה שתי תצוגות של הטבלה...שים לב שאם אתה בונה תוכנית שמתקשרת לסיסמאות לשים לב
גם לאותיות הגדולות והקטנות באנגלית...
http://web.cs.mun.ca/~michael/c/ascii-table.html
http://www.neurophys.wisc.edu/comp/docs/ascii.html

Ori The Man 05-01-07 16:23

אם הייתי יודע איך אפשר לעשות שאם זה לא נכון שינסה תו אחר הייתי עושה ככה
אבל אין לי ממש מושג :(
ואני רוצה את כל הקומבינציות האפשריות
נגיד
3 ספרות ינסה הכל לא ילך? ישעבור ל 4 וכך הלאה

omercnet 05-01-07 20:02

אתה שם את ori במשתנה נקרא לו secret$

אתה עושה לולאת פור קטנה ונחמדה, שרצה מ 65 עד 122 שזה A-Z a-z ועוד קצת סימנים
בלולאה אתה בודק אם chr של הספירה שלך שווה לsecret, אם כן break עם הודעה שניצחת

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

נגיד יש לנו מערך: abc
ואתה רוצה להגיע לכל האופציות באורך 5 תווים (aaa, aab, aac..)
שזה יוצא 3 (תווים) בחזקת 5 (אורך האופציות)
נגיד ונתייחס לכל אופציה בתור מספר, aaa=1, aab=2, aac=3
לדוגמא "bac" יוצא 24, ומחשבים את זה ככה:
[code]2*3^2+1*3^1+3*3^0[/clode]
האיבר השני במערך (b=2) כפול סך האיברים במערך (3) בחזקת המיקום פחות אחד (3-1=2)
ועוד האיבר הראשון במערך (a=1) ...

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

Ori The Man 05-01-07 21:08

לא הבנתי כלום :S בעעע
המספרים זה ascii נכון?
ואז מריצים לולאה של כל ה a-z ואז אם זה לא מצא
צריך עוד ספרה אז אותו דבר
לא הבנתי ממש תחישוב :S

omercnet 05-01-07 21:31

החישוב זה כמו שאפשר לחשב 504 ע"י
5*100 + 0*10 + 4+1
מאות עשרות אחדות
אפשר באותו אופן לעשות
100 = 10^2
10 = 10^1
1 = 10^0

ואז לשים 5 למאות, 0 לעשרות ו4 לאחדות
עושים 10 בחזקת משהו בגלל שהאופציות שלנו זה 0-9, סה"כ 10
בדוגמא מקודם עושים 3 בחזקת משהו בגלל שהאופציות שלנו הן a-c, סה"כ 3
a מאות
b עשרות
c מאות


הבנת בערך? :-0

Ori The Man 05-01-07 22:19

מצטער אבל לא חחח
אני דיי דפוק :)

Ori The Man 06-01-07 18:38

ציטוט:

נכתב במקור על ידי omercnet (פרסם 400979)
אתה שם את ori במשתנה נקרא לו secret$

אתה עושה לולאת פור קטנה ונחמדה, שרצה מ 65 עד 122 שזה A-Z a-z ועוד קצת סימנים
בלולאה אתה בודק אם chr של הספירה שלך שווה לsecret, אם כן break עם הודעה שניצחת

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

נגיד יש לנו מערך: abc
ואתה רוצה להגיע לכל האופציות באורך 5 תווים (aaa, aab, aac..)
שזה יוצא 3 (תווים) בחזקת 5 (אורך האופציות)
נגיד ונתייחס לכל אופציה בתור מספר, aaa=1, aab=2, aac=3
לדוגמא "bac" יוצא 24, ומחשבים את זה ככה:
[code]2*3^2+1*3^1+3*3^0[/clode]
האיבר השני במערך (b=2) כפול סך האיברים במערך (3) בחזקת המיקום פחות אחד (3-1=2)
ועוד האיבר הראשון במערך (a=1) ...

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

חשבתי עכשיו על זה שוב
אבל איך אני יכו ללעשות שרק אחרי שהוא מנסה את כל הניסיונות עם a בהתחלה למשל הוא יעבור ל
aba
aca
.
.
.
abb
abc
וכו'?
שזה ממש יתן את כל הקומבינציות האפשריות


כל הזמנים הם GMT +2. הזמן כעת הוא 09:00.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ