چالش Algebra Exam¶

صورت چالش¶
در این سوال یک فایل txt
حاوی عبارتهای زیر به ما داده شده.
x=-3{-6<y<-4}
x=-1{-6<y<-4}
-x-7{-3<x<-2}
x-3{-2<x<-1}
2x+10{-5<=x<=-4}
-2x-6{-4<=x<=-3}
y=1{-4.5<=x<=-3.5}
y=-7{2<x<4}
x=3{-9<y<-7}
x=-1{-3<=y<=-1}
x=0{-3<=y<=-1}
y=-2{-1<=x<=0}
y=-1{1<=x<=2}
y=-3{1<=x<=2}
x=1.5{-3<=y<=-1}
(x-0.5)^2+(y+7.5)^2=.25{y>-7.5}
(x-0.5)^2+(y+7.5)^2=.25{x<.5}
(x-0.5)^2+(y+8.5)^2=.25{x>.5}
y=-1{-5<=x<=-4}
y=-2{-5<=x<=-4.25}
x=-5{-3<=y<=-1}
x=5{-8.5<y<-7}
x=6{-8.5<y<-7}
(x-5.5)^2+(y+8.5)^2=.25{y<-8.5}
x=0{-6<y<-4}
(-4/3)x-4 {0<x<1.5}
x=1.5{-6<y<-4}
حل چالش¶
با کمی جستجو و استفاده از ChatGPT متوجه شدم که اینها نمایش خط روی نمودار مختصات است. با استفاده از کد زیر شروع کردم به رسم نمودار هایی که با استفاده از این عبارتهای جبری تولیط میشود برای توضیح این عبارتها به عنوان مثال x=-3{-6<y<-4}
یعنی خط x=3 در بازهی که y بین [-6.-4] است همچنین، عبارت -2x-6{-4<=x<=-3}
به معنی خط y=-2x-6 در بازهی [-4,-3] است. سپس با استفاده از کد زیر نمودار کل این عبارتهای جبری را روی plot رسم کردم.
solve.py | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
|
بعد از اینکه نمودار کل این عبارتهای جبری را روی plot با استفاده از کد پایتون بالا نمایش دادم خروجی زیر ظاهر شد:

از این نمودار عملا چیزی متوجه نمیشدم عبارت بی معنی از حروف بود و خیلی از حالتها رو چک کردم ولی باز هم فلگ درست نبود. یک مدت زمانی روی این مسئله درگیر بودم که مشکل ممکنه کجا باشه تا اینکه یک راهحل به ذهنم رسید که ممکنه ترتیب حروف نشان داده شده روی نمودار فرق کند و باید حروف به ترتیب عبارتهای جبری ساخته شوند. پس عبارتها را به شکل زیر دستهبندی کردم:
x=-3{-6<y<-4}
x=-1{-6<y<-4}
-x-7{-3<x<-2}
x-3{-2<x<-1}
2x+10{-5<=x<=-4}
-2x-6{-4<=x<=-3}
y=1{-4.5<=x<=-3.5}
y=-7{2<x<4}
x=3{-9<y<-7}
x=-1{-3<=y<=-1}
x=0{-3<=y<=-1}
y=-2{-1<=x<=0}
y=-1{1<=x<=2}
y=-3{1<=x<=2}
x=1.5{-3<=y<=-1}
(x-0.5)^2+(y+7.5)^2=.25{y>-7.5}
(x-0.5)^2+(y+7.5)^2=.25{x<.5}
(x-0.5)^2+(y+8.5)^2=.25{x>.5}
y=-1{-5<=x<=-4}
y=-2{-5<=x<=-4.25}
x=-5{-3<=y<=-1}
x=5{-8.5<y<-7}
x=6{-8.5<y<-7}
(x-5.5)^2+(y+8.5)^2=.25{y<-8.5}
x=0{-6<y<-4}
(-4/3)x-4 {0<x<1.5}
x=1.5{-6<y<-4}
حالا به جایی اینکه کل عبارتهای جبری را روی یک plot رسم کنیم، عبارتها را به صورت بالا به پایین به شکل دستهای اجرا میکنیم تا یک حرف ظاهر شود. برای مثال، با چهار عبارت بالا حرف M ظاهر میشود و با سه عبارت بعدی حرف A نمایش داده میشود.
H | T | A | M |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
U | F | S | I |
![]() | ![]() | ![]() | ![]() |
N | |||
![]() |
این کار را تا آخر ادامه میدهیم تا کل عبارت فلگ MATHISFUN بدست بیاید.
FLAG 
ironCTF{MATHISFUN}
نویسنده