アプリ版:「スタンプのみでお礼する」機能のリリースについて

数学から離れてもう、25年になりますので私には解けません。どなたかわかる方おりますか。Xの値が1ずつ変化すると、yの値が
 -7,-1,-6,-2,-5,-3,-4 と変化する方程式です。お分かりになる方是非教えてください。

A 回答 (8件)

ミス入力がありました。

修正します。
a=x-7[x/7]より
順にx=0,1,2,3,4,5,6ではa=01,2,3,4,5,6
順にx=7,8,9,10,11,12,13ではa=01,2,3,4,5,6
順にx=14,15,16,17,18,19,20ではa=01,2,3,4,5,6
・・・とうまく繰り返されます。
後ろの10×[x/7]ですが、
順にx=0,1,2,3,4,5,6では10×[x/7]=0
順にx=7,8,9,10,11,12,13では10×[x/7]=10
順にx=14,15,16,17,18,19,20では10×[x/7]=20
・・・・と十の位もうまくいきます。
    • good
    • 0
この回答へのお礼

ご教授ありがとうございました。なんとかやりたいことができました。ちょっと強引でしたが、つぎのようなものです。
Dim x, y, z As Integer
For z = 0 To 190 Step 10
For x = -1 To 6
For i = 0 To 3
y = Fix(((6 - x) / 2) * (-1) ^ (x + 1) - 4)
Sheets(a).Cells(12 + z, 4).Offset(y, i) = Sheets(b).Cells(4 + x, 7).Offset(0, i)
Next i
Next x
Next z
ちょっとxを-1からスタートさせているのが邪道っぽいんですが、動作は意図したものになりました。ほんとうはx=0からスタートしたかったのですが、十分です。
 d-l_-b様をはじめ、ご教授くださった皆様本当にありがとうございました。

お礼日時:2007/06/22 21:13

EXCELで計算するなら、


変数(x)をA1からAnのセルにいれて、
=IF(INT((A1-1)/7)<0,0,-4+(-1)^(MOD(7-MOD(A1,7),7)+1)*INT((MOD(7-MOD(A1,7),7)+1)/2)-10*INT((A1-1)/7))
を関数値(y)のセルB1に入れて、B1のセルをB2からBnのセルまでコピーすればできあがりです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
オ~!と思い、関数欄に貼り付けて、マクロをとろうとしましたが、
#NAME?でした。
=IF(INT((A1-1)/7)<0,0,-4+(-1)^(MOD(7-MOD(A1,7),7)+1)*INT((MOD(7-MOD(A1,7),7)+1)/2)-10*INT((A1-1)/7))

お礼日時:2007/06/22 22:55

No4です


>>結局xの値が8個取得される毎に、次回のyの値は-10されながら
上記の決まりで決定していくという式です。
x=0のときy=-7のようですね。

-7,-1,-6,-2,-5,-3,-4,-17,-11,-16,-12,-15,-13,-14,-27,-21,-26,-22,-25,-23,-24,,-37,-31,-36,-32,-35,-33,-34
ですが一の位は7,1,6,2,5,3,4の繰り返しですね。

私の回答を微調整(x=0でy=-7となり、繰り返しが起こるようにして、更に十の位もあうように)して
y=-7+(7/2){1-(-1)^a}+{(-1)^a-1}/4-{(a(-1)^(a+1)}/2-10×[x/7]
ただしa=x-7[x/7]
でうまくいかないでしょうか。
ちなみに[A]はAを越えない最大の整数です。

-7,-1,-6,-2,-5,-3,-4,I-17,-11,-16,-12,-15,-13,-14,I-27,-21,-26,-22,-25,-23,-24,I-37,-31,-36,-32,-35,-33,-34,I

このように区切ってやってみました。
a=x-7[x/7]より
順にx=0,1,2,3,4,5,6ではy=01,2,3,4,5,6
順にx=7,8,9,10,11,12,13ではy=01,2,3,4,5,6
順にx=14,15,16,17,18,19,20ではy=01,2,3,4,5,6
・・・とうまく繰り返されます。
後ろの10×[x/7]ですが、
順にx=0,1,2,3,4,5,6では10×[x/7]=0
順にx=7,8,9,10,11,12,13では10×[x/7]=10
順にx=14,15,16,17,18,19,20では10×[x/7]=20
・・・・と十の位もうまくいきます。
    • good
    • 0
この回答へのお礼

For x = 0 To 7
a = x - 7 * (x / 7)
y = -7 + (7 / 2) * (1 - (-1) ^ a) + ((-1) ^ a - 1) / 4 -      ((a * (-1) ^ (a + 1)) / 2 - 10 * (x / 7))
Cells(x + 1, 7) = y
Next x


-7
-5.571428571
-4.142857143
-2.714285714
-1.285714286
0.142857143
1.571428571
3
式ですが、VBA用に上記のように書き換えましたが、違っているでしょうか。結果がその下のようになりました。

お礼日時:2007/06/22 19:23

No.3です。


第8項、第16項、第24項…と8の倍数の項から-10ずつ加えていくのであれば、先ほどの式にガウス記号を使い
-10×[x/8]
と言うものを加えればできます。
エクセルで行うのであれば別のアプローチも考えてみます。
    • good
    • 0
この回答へのお礼

ありがとうございます。実は、何名かの方からいただいた式をVBAでやってみたのですが、私のxとyの値の示し方が悪かったようで、正しく出てきませんでした。x=0のときはy=0です。x=0のときy=-7と捕らえられてしまっていたようで。パソコンで計算しているので、数学上は正解でも、2進法上の誤差がでるので正しく出ないのかもしれませんが。

お礼日時:2007/06/22 18:50

数列と考えれば-7,-1,-6,-2,-5,-3,-4 から階差(隣り合う2項の差)をとって


6,-5,4,-3,2,-1
この数列b(n)=(7-n)(-1)^(n-1) 
x-1
Σb(n)=(7/2){1-(-1)^(x-1)}+{(-1)^(x-1)-1}/4-{(x-1)(-1)^x}/2=B
n=1
よって
y=-7+B=-7+(7/2){1-(-1)^(x-1)}+{(-1)^(x-1)-1}/4-{(x-1)(-1)^x}/2
となります。
x=1ならy=-7
x=2ならy=-1
x=3ならy=-6
x=4ならy=-2
x=5ならy=-5
x=6ならy=-3
x=7ならy=-4
となります。
    • good
    • 0
この回答へのお礼

ありがとうございます。沢山の方から回答をいただいて大変助かっております。早々に使用させていただきます。ありがとうございました。

お礼日時:2007/06/22 17:38

方程式でしょうか?


その数列の続きはどうなりますか?

一応数列すべてに4をたすと
-3,3、-2,2、-1,1,0
となります。ガウス記号を使おうか考えましたが純粋に数列でいくと、符号は頭にcos(πx)をつければよいので
3,3,2,2,1,1,0について考えると
階差数列0,-1,0,-1,0,-1
Bn=-1/2cos(πx)-1/2
元の数列An=3+ΣBk
=3-1/2Σcos(πx)-1/2(x-1)
=7/2-1/2(x)-1/2Σcos(πk)
大元の数列は
cos(πx){7/2-1/2(x)-1/2Σcos(πk)}-4:Σはk=1からx-1までの和
確かめてませんし、全然正解だとは思えませんが。もうチョット条件があれば補足ねがえますか?
    • good
    • 0
この回答へのお礼

すごいですね!ありがとうございます。xの値が8まで変化したときまでがでればなんとか・・・。でも本当は、次のようになる方程式を導きだせると最高なのですが、無理とあきらめています。xの値は1ずつ変化。それに伴うyの値は、
-7,-1,-6,-2,-5,-3,-4,-17,-11,-16,-12,-15,-13,-14,-27,-21,-26,-22,-25,-23,-24,,-37,-31,-36,-32,-35,-33,-34,

xの値が0~7まで変化したあと、yの値が+10されて同じように変化する。結局xの値が8個取得される毎に、次回のyの値は-10されながら
上記の決まりで決定していくという式ですが。あまりにも難しそうで。
可能でしょうか?

お礼日時:2007/06/22 17:33

#1です。

xが整数以外のときにもyが値を持った方がいいですよね。という訳で2番目の答え。(といっても殆ど同じだけど)

y=[(7-x)/2]cos(π(x+1))-4

>x≧0ではエクセルのint()と同じ・・・
と書いたけど訂正。x<0でもエクセルのint()と同じです。
    • good
    • 0
この回答へのお礼

ありがとうございます。エクセルのint()と同じというのは、エクセルには、これをすぐに出せる関数があるのでしょうか。

お礼日時:2007/06/22 17:44

方程式? 関数といった方がピンとくるけど・・・



最初の-7のときのxの値を0とすると次のような例を挙げることができます。

y=[(7-x)/2](-1)^(x+1)-4

>数学から離れてもう、25年

ということなので解説を少し。[x]はxを越えない最大の整数。x≧0ではエクセルのint()と同じだと思っていいです。
^はべき乗。(-1)^(x+1)は、x=0から-1,1、-1,1、・・・となります。
ただし上の関数は与えられた7点を通る関数の一例に過ぎません。他にも答えは色々あるでしょう。

この回答への補足

ありがとうございます。実はエクセルで使用しようとしているので、エクセルにこれを簡単に出せる関数があるんであれば、最高なのですが。
int()の引数にはiを入れればいいのでしょうか?

Dim y,i as integer

for i = 0 to 7
y=int(i)
next i
?????????????
もしお分かりになるのであれば、ぜひ教えてください!

補足日時:2007/06/22 17:51
    • good
    • 0
この回答へのお礼

For x = 0 To 7
y = ((7 - x) / 2) * (-1) ^ (x + 1) - 4
y = Fix(y)
Cells(x + 1, 7) = y
Next x
Fixで小数点以下を切り捨てました!すると、yの値が期待したような値になりました!
ただ、x=0のときy=0で、x=1のとき、y=-7となるといいのですが。

お礼日時:2007/06/22 19:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!