PDA

View Full Version : ماتریس



mononok
پنج شنبه 09 آبان 1387, 06:15 صبح
سلام دوستان

من یه ماتریس دو بعدی پایین مثلثی دارم که عناصر آن را به صورت سطری در یه آرایه یه بعدی ریختم و حالا با فرمولی که دارم می توانم با داشتن اندیس آن در آرایه دو بعدی قبلی آدرس آن را در آرایه جدید پیدا کنم ولی مشکل من این هست که خود این فرمول چگونه ایجاد شده چون برای نوشتن فرمول های بعدی باید اول اینو بفهمم .لطفا با من همفکری کنید.:لبخندساده:

a11 0 0 0
a21 a22 0 0
a31 a32 a33 0
a41 a42 a43 a44
1 2 3 4 5 6 7 8 9 10
a11 a21 a22 a31 a32 a33 a41 a42 a43 a44

formul: (i(i-1)/2)+j

a32: i=3 j=2 (3(3-1)/2)+2=5

mononok
پنج شنبه 09 آبان 1387, 06:33 صبح
یه سوال دیگه که داشتم اینه که به نظر شما راهی برای نوشتن چنین ماتریسی فقط با یک حلقه زیر وجود داره؟؟:متفکر:

0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0

for i=1 to 64

f.nabavi
پنج شنبه 09 آبان 1387, 08:39 صبح
سلام. این کد جواب سوال دوم شماست. البته از یه متغیر هم استفاده کردم. نمیدونم مجاز بود یا نه... اگر نه بگید، کد رو تغییر میدم.

Dim k As Integer
k = 1
For i = 1 To 64
If (k Mod 2) = 1 Then
If (i Mod 2) = 1 Then
Text1.Text = Text1.Text + " 0"
Else
Text1.Text = Text1.Text + " 1"
End If
Else
If (i Mod 2) = 1 Then
Text1.Text = Text1.Text + " 1"
Else
Text1.Text = Text1.Text + " 0"
End If
End If
If (i Mod 8) = 0 Then
Text1.Text = Text1.Text + vbCrLf
k = k + 1
End If
Next i

mononok
پنج شنبه 09 آبان 1387, 09:10 صبح
نمیدونم مجاز بود یا نه... اگر نه بگید، کد رو تغییر میدم.
نیازی به تغییر نیست. ممنون از کمکتون

mononok
پنج شنبه 09 آبان 1387, 14:57 عصر
کسی نیست که به من کمک کنه؟؟؟:افسرده:

hamed aj
جمعه 10 آبان 1387, 00:54 صبح
با سلام



یه سوال دیگه که داشتم اینه که به نظر شما راهی برای نوشتن چنین ماتریسی فقط با یک حلقه زیر وجود داره؟؟
کد:

0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0

for i=1 to 64





جواب




Dim t As Byte
t = 0

For i = 1 To 64
If (((i - 1) Mod 8) <> 0) Then
If (t = 0) Then
t = 1
Else
t = 0
End If
Form1.Text1.Text = Form1.Text1.Text & " " & t
Else
Form1.Text1.Text = Form1.Text1.Text & vbCrLf
Form1.Text1.Text = Form1.Text1.Text & " " & t
End If
Next i



موفق باشید

hamed aj
جمعه 10 آبان 1387, 01:24 صبح
دوست عزیز؛




من یه ماتریس دو بعدی پایین مثلثی دارم که عناصر آن را به صورت سطری در یه آرایه یه بعدی ریختم و حالا با فرمولی که دارم می توانم با داشتن اندیس آن در آرایه دو بعدی قبلی آدرس آن را در آرایه جدید پیدا کنم ولی مشکل من این هست که خود این فرمول چگونه ایجاد شده چون برای نوشتن فرمول های بعدی باید اول اینو بفهمم .لطفا با من همفکری کنید.
کد:

a11 0 0 0
a21 a22 0 0
a31 a32 a33 0
a41 a42 a43 a44
1 2 3 4 5 6 7 8 9 10
a11 a21 a22 a31 a32 a33 a41 a42 a43 a44

formul: (i(i-1)/2)+j

a32: i=3 j=2 (3(3-1)/2)+2=5





اگر دقت کنید در ماتریس های مثلثی (پایین یا بالا)، تعداد عناصر غیر صفر هر ردیف، 1 واحد بیشتر از ردیف قبل و 1 واحد کمتر از ردیف بعدی می باشد. این یعنی ما با یک حاصل جمع تصاعدی روبرو هستیم. اگر دقت کنید می بینید که از ابزار های ریاضی سیگما چنین خاصیتی رو داره

بست سیگمای نوع اول رو به یاد دارید؟

من در شکل زیر این سیگما رو به همراه حاصل بستش آوردم

25035

فکر میکنم همه چیز واضحه
اگر سوالی بود بپرسید

موفق باشید