イメージを書いておくとこんな感じです
(表示がずれてしまうかもしれません。0 がある部分が x,y 軸の交点になります)
y
|
36 35 34 33 32 31 30
37 16 15 14 13 12 29
38 17 4 3 2 11 28
39 18 5 0 1 10 27 ----> x
40 19 6 7 8 9 26
41 20 21 22 23 24 25
42 43 ....
|
|
えっと、、
さっきの方法で
XをD1セル yをD2セルで計算してみた
Xのプラス方向は 0,1,10,27,52,85,126・・・・
これは
=(D1*2-1)*(D1*2-1)+ROUNDDOWN((D1*2-1)/2,0)
yのプラス方向は 3,14,33,60,95,138・・・
これは
=(D2*2-1)*(D2*2-1)+ROUNDDOWN((D2*2-1)/2,0)+(D2*2)
、、、と 私にできるのはここまでです、、w
参考になるんかな?
http://www.hatena.ne.jp/1140760877#a6
人力検索はてな - この数列は、式で表せますか? 1 5 10 18 27 39 52 68 ...
0 0
1 1-8
2 9-24
3 25-48
...
と原点からの「同心円」を考えますと
k 番目の同心円には
(2k-1)^2 から(2k+1)^2 -1
までの数が含まれます。また (x,y) は
max(|x|,|y|) 番目の同心円に含まれます。
同心円内での (x,y) の位置を場合分けして考えますと
k = max(|x|,|y|)
e = (2*k+1)**2
n = e-1*k-1+x (if y = -k)
n = e-3*k-1-y (if x = -k)
n = e-5*k-1-x (if y = k)
n = e-7*k-1+y (if x = k)
として x,y から、原点から螺旋状に数えた番号 n が求まります。
場合分けせずに1個の数式で表現する方法はちょっとわかりません。
をを。。なるほど。
同心円ごとに場合分けするというのは、ちらっと思いついたものの、ご紹介いただいた式にはたどり着けないでいました。
もう一歩ですね。
私ももう少し(風邪が治ったら)考えてみます!
ありがとうございました。
Yahoo! JAPAN
2回目です考えすぎておかしくなってたな、、
上のは見なかったことにしてください、、w
ふむ、、
プラス方向は何とかなる
X軸
=(E1*2)*(E1*2)-(E1*3)
Y軸
=(F1*2)*(F1*2)-(F1*3)+(F1*2)
マイナス方向も別に出してみる
X軸
=(E1*2)*(E1*2)-(E1*3)+(E1*2)
Y軸が
=(F1*2)*(F1*2)-(F1*3)
どうやってもあかんな、、、
1を基準に計算するからいけないんだよな、、、
IF使ったらいかん?
X軸
=IF(E1>0,(E1*2)*(E1*2)-(E1*3),(E1*2)*(E1*2)-(E1*3)+(E1*2))
y軸
=IF(F1<0,(F1*2)*(F1*2)-(F1*3),(F1*2)*(F1*2)-(F1*3)+(F1*2))
よっしゃ完璧だ!!! ありですか??
もちょっと考えてみるけど もう2回回答しちゃったのでさよなら
(何で2回しか回答できないんでしょうね?設定させてくれてもいいのに、、)
2度目、どうもありがとうございます。
私も朦朧とした頭で何気なく考えているのですが、まだ答えにたどり着けていません。
で、週末からの風邪治らず、後で元気になってから試させていただきます。すいませんm(_ _)m
一旦質問クローズしたいと思います
#インフルエンザではないようなんですけどねぇ。。。
ありがとうございます。
すいませんが週末から体調崩していて、今じっくりと考えることができません m(_ _)m
ちょっとやってみたところ、xが 0, 1, 1, 1 ...になって y が 0, 1, 3 33, 4323.. .になってしまい何か私が間違っていると思うのですが、
あとでじっくり考えさせていただきます。
ありがとうございました。