Python詳しい人来てくれ

1 : 2021/12/11(土) 00:45:09.774 ID:loFY2Bn70
1 2 3 9 5
7 5 1 4 6
9 5 4 2 6
1 2 3 5 7
7 9 5 6 4

という2次元配列を生成して、
ど真ん中の4に隣合う8マスの値を抽出したい
なんかいい方法ある?

2 : 2021/12/11(土) 00:45:34.213 ID:ouWMbDCe0
気合い
3 : 2021/12/11(土) 00:46:08.158 ID:e/y+AHFb0
cなら答えられた
4 : 2021/12/11(土) 00:46:36.129 ID:UJPUoQ/r0
そらもうfor文よ
5 : 2021/12/11(土) 00:47:14.733 ID:oacIEKGLa
普通にやれよ
7 : 2021/12/11(土) 00:48:13.478 ID:4d0x1RLB0
真ん中固定なら2-1,2-2,2-6,3,3-1,3-1,4-1,4-2,4-3取ればいいだけじゃん
10 : 2021/12/11(土) 00:49:35.517 ID:loFY2Bn70
>>7,9
すまん
任意の なんだ
固定ではない
8 : 2021/12/11(土) 00:48:24.197 ID:loFY2Bn70
わかりやすくGUIとして例えると

5 × 5 の配列で値が書かれたボタンを作る
任意のボタンを押す

押されたボタンに隣合う8マス(端っこなら5マス。左右逆方向にはいかない)の値を抽出したい

9 : 2021/12/11(土) 00:49:08.194 ID:Vkm3No3o0
固定でこのくらいの数なら普通に一個ずつ書いた方が早い
11 : 2021/12/11(土) 00:50:01.928 ID:f28pSA64d
すまん、Python(ピトンと発音)関係ある?
12 : 2021/12/11(土) 00:50:06.591 ID:UhAjb+YN0
Pythonの話じゃないよね
14 : 2021/12/11(土) 00:51:07.186 ID:Vkm3No3o0
forの縦横2重ループでx座標とy座標の差を見て条件に合うやつだけ配列に追加していく
15 : 2021/12/11(土) 00:52:10.696 ID:e/y+AHFb0
押されたボタンを受け取ってプラマイ1のとこを参照するだけじゃねえの
16 : 2021/12/11(土) 00:52:17.883 ID:th2jJ88pa
マンハッタン距離を計算する関数を定義してマンハッタン距離=1である要素を取り出せばいいのでは?
17 : 2021/12/11(土) 00:52:42.898 ID:f28pSA64d
抽出の意味がわからん
配列?どんな順番で?
18 : 2021/12/11(土) 00:53:30.568 ID:oacIEKGLa
配列使うメリットを分かってれば誰でもできるレベル
19 : 2021/12/11(土) 00:54:57.272 ID:HXLiqxKl0
こういう質問投げてレスないやつムカつくよね
20 : 2021/12/11(土) 00:55:52.093 ID:iH0SfBo7a
隣り合う8マスを取得すれば良いよ
21 : 2021/12/11(土) 00:56:22.641 ID:th2jJ88pa
[arr[x, y] for x, y in なんちゃら if マンハッタン距離(r(x, y), r(a, b)) ==1]
とかやればスマートだよね
22 : 2021/12/11(土) 00:57:59.625 ID:Vkm3No3o0
マンハッタン距離ってなに?
23 : 2021/12/11(土) 01:00:31.166 ID:th2jJ88pa
>>22
情報工学専攻なら一度は習う(画像処理工学などで、)
情報工学専攻じゃなくてもキーワードを出したのだからググることができる
27 : 2021/12/11(土) 01:03:41.668 ID:Vkm3No3o0
>>23
まぁググったけど今回のと関係ないわな
24 : 2021/12/11(土) 01:00:55.238 ID:uZbB9E4zH
マンハッタン距離だと斜めのやつ2じゃね?
25 : 2021/12/11(土) 01:02:07.923 ID:th2jJ88pa
>>24
たしかにそうだな
他にも距離関数はあって、その中で1の課題を解決できる距離関数があった気がする
26 : 2021/12/11(土) 01:02:51.895 ID:uZbB9E4zH
チェビシェフでは?
28 : 2021/12/11(土) 01:04:04.865 ID:th2jJ88pa
>>26
たしかにそうだな
チェビシェフ距離で間違いない
34 : 2021/12/11(土) 01:14:35.544 ID:Vkm3No3o0
>>26
ググったけど条件式はx座標の差とy座標の差のうち大きい方が1になるやつって書けるんだな
37 : 2021/12/11(土) 01:20:26.503 ID:uZbB9E4zH
>>34
実装のほうはよくわからんけどたぶんそうだな
座標の差の,絶対値が大きいものを採用
29 : 2021/12/11(土) 01:06:56.887 ID:R9WFlg/x0
普通に二重ループで済むやろ
30 : 2021/12/11(土) 01:08:50.837 ID:MDohYy0+M
たしかにそうだなおじさん
31 : 2021/12/11(土) 01:09:02.477 ID:8jAJ4N0n0
なーにがマンハッタン距離だか
こんなんiとjとi0とj0で条件式かきゃすむだろーが
32 : 2021/12/11(土) 01:11:18.158 ID:R9WFlg/x0
とりあえず書いたとこまでコード貼れ
33 : 2021/12/11(土) 01:11:59.662 ID:a3LAxxgM0
行列の論理積で良いじゃないの
ってか答え出てるじゃん
これに気付かないレベルの人達が数学語ってんのか・・・
35 : 2021/12/11(土) 01:17:48.232 ID:Vkm3No3o0
>>33
マスク用の行列作る方がめんどくさいかも
36 : 2021/12/11(土) 01:18:55.816 ID:AVvBdWPU0
よくわかんないけど2重ループで中身全部なめてどっちかのループカウンタがプラマイ1のものを抽出すれば取れる気がする
カウンタが0なら最大値、最大値なら0の中身を代わりに取るようにする必要はあるけども
38 : 2021/12/11(土) 01:21:07.700 ID:R9WFlg/x0
質問しといてシカトしてんじゃねーよ
もう結論出たから落とせ

コメント

タイトルとURLをコピーしました