[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 20:18 / Filesize : 259 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングの為の数学と算数 vol.2



1 名前:デフォルトの名無しさん [04/09/05 16:22]
プログラムに必要な数学、算数に関する話題について
語りましょう。TIPS/Q&Aスレです。

808 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 16:00:13 ]
> プログラミングに役立つ勉強方法が知りたい。
これは例えるなら「スポーツに役立つ練習方法を知りたい」と言ってるようなもの。
スポーツの種目によって練習方法が違うように、プログラミングの分野によって役立つ
数学の分野も違う。

# プログラミングで飯を食っていきたいなら、数学より簿記でもやった方が潰しがきくような気がしないでもない。

809 名前:806 mailto:sage [2007/04/22(日) 13:35:06 ]
>>807-808
レスサンクス。

プログラミングはCの基本的な文法を理解している程度で、数学に関しては
高校レベルもサパーリな状況です。

簿記の知識って業務系だとそんなに役に立つのか。。。。
それなら一応日商の簿記一級を持ってるんで、この知識を生かして業務系に
進んだほうがいいのかなと思ってるんだが、
「生涯現役でプログラマなんだぜ?」
な漏れとしては組込み系や制御系のほうがいいのかなと考えたり、、、
今現在はどの分野にいこうか迷ってるところです。

どうやらプログラミングに必要な数学は各分野ごとにまちまちで、漏れの
やりたいこと自体もまだ定まってないので、とりあえず高校レベルの数学を
勉強する。そしてその時の勉強法としては大学受験を目指す感じのやり方
じゃなく、基本的な公式を理解する程度でよいってことでFA?


810 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 21:45:37 ]
人に分からないことは全く問題ないけど、
全部頼るのは良くない。
自分で決める、たぶんそれが一番大事だ。

811 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 22:39:13 ]
>人に分からないことは全く問題ないけど、
日本語でOK。

812 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 00:45:08 ]
進路相談は完全に板違いなんでとっとと消えろな
毎年毎年現れる上に、人によって状況が違うし、いちいち答えてたらキリが無い

813 名前:全知全能者 [2007/04/25(水) 05:10:58 ]
いつの世も物を言うのは「力」だ。

原始時代は「筋力」
江戸時代は「家柄」
そして現代は「金」

現代社会では金を持っている人間が強い。
革新的なパラダイムの転換が無い限りこの価値観は変わらない。

814 名前:デフォルトの名無しさん [2007/04/25(水) 15:49:14 ]
そして、この先は『人柄』が力となる。

815 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:22:43 ]
ピクセルのフェード計算についての質問をさせてください。
実行したいのは以下の式です。

// dst[0 〜 255]: 転送先ピクセルの色要素)
// src[0 〜 255]: 転送元ピクセルの色要素)
// rate[0 〜 255]; srcの比率 )
// (すべてbyte型です)
//
フェード式
 = (dst * (255 - rate) + src * rate) >> 8;
 ~= dst + (((src - dst) * rate) >> 8);
  (~= はニアリーイコールです)

これを実現するために以下のような計算方法がよく使われています。

1) short tmp = (short)src - (short)dst; //< 符号付き2バイト数に拡張します
2) tmp = (short)(tmp * rate); //< 演算結果の下位2バイトを結果として受け取ります
3) tmp = (word)tmp >> 8; //< 無符号型としてシフト()
4) byte result = (byte)(dst + (byte)tmp); //< tmpの下位1バイトのみを足し込みます

これだけ見ると変に複雑に見えますが、
実は計算にはmmxを使っていて4要素まとめて演算します。
そこで、1要素につき2バイトの範囲内で
(src - dst){-255 〜 255} * rate{0 〜 255}
の符号付き乗算をしないといけないため、このようなことになっています。

816 名前:815 mailto:sage [2007/04/29(日) 00:24:22 ]
>>815の続きです^^

例えば、src=0, dst=255, rate=255の場合、
結果としては0が期待されますが、実際に計算してみると
1) tmp = -255 = 0xff01
2) tmp = (short)(0xff01 * 0xff) = (short)0xfff01ff = 0x01ff
3) tmp = 0x01
4) result = (byte)(0xff + 0x01) = 0x00
となり正しい結果が得られます。

また、src=200, dst=225, rate=200の場合は、
204程度が望まれますが、実際に計算してみると
1) tmp = -25 = 0xffe7
2) tmp = (short)(0xffe7 * 0xc8) = (short)0xc7ec78 = 0xec78
3) tmp = 0xec
4) result = (byte)(0xe1 + 0xec) = 0xcd = 205
とほぼ正しい結果が得られます。

上の式は有名なライブラリで使われている式でもあり、
正しいことはほとんど保証されているのですが、
これがなぜ正しいのか証明できる方はいませんか?
少なくとも自分には理解できないです。
文献でもいいです。よろしくお願いします。



817 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:48:54 ]
>>815

どうしてもなにも、定義そのままの計算式じゃん。

> 1) short tmp = (short)src - (short)dst; //< 符号付き2バイト数に拡張します

(src-dst) は、-255〜+255 なので、short に納まる。

> 2) tmp = (short)(tmp * rate); //< 演算結果の下位2バイトを結果として受け取ります

(src-dst)*rate は、-65280〜+65280 なので、2の補数で17ビット必要→shortだと1bit足りない→後述

> 3) tmp = (word)tmp >> 8; //< 無符号型としてシフト()

((src-dst)*rate)>>8 は -255〜+255なので、2の補数で9ビット必要だが、2)の時点で9ビット目の情報は落ちている

> 4) byte result = (byte)(dst + (byte)tmp);

ここで、8ビット整数で計算するのだから、上記3)の所で、結果は8ビットあれば十分。9ビット目の値は要らない。

8ビットで演算するのに「-1(0xff)を足す」のも「255(0xff)を足す」のも、まったく同じ結果になることに気付けばOK。
3)の結果で、-255 が出てきたのを、+1 として処理してもまったく問題ない。
→ -255〜-1 を +1〜+255 で処理しても結果は同じ。

818 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 14:31:47 ]
>>817
おお!
8ビットまで精度を保証すればうまくいくってことね^^
どうもありがとう

819 名前:デフォルトの名無しさん [2007/04/29(日) 18:19:52 ]
数学の知識はそりゃあった方が良いと思うけど、
一番大事なのは物事を合理的に考える事が出来るか。

820 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 19:08:45 ]
合理的に考えれば2chで質問するほど無駄なことは無い訳だが

821 名前:デフォルトの名無しさん [2007/04/29(日) 19:46:50 ]
自由な曲線(ベジェ曲線か、折れ線の点列)を円弧のあつまりで近似したいんですが、
ヒントはないでしょうか? と、質問した者です。

点列が1個の円や直線にフィットするかどうかは、最小二乗法などで、
解決できると思います。
したがって、どういう風なグループで円弧や直線にすると、さらに最小になるか、
という問題になるような気がするのですが、そういう問題には、どのような考え方で臨めばよいでしょうか。




822 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 20:18:42 ]
やりたい事が判らないから困ってしまうのだけど、
円は3点で決まるから、3点毎に円弧を描いても、近似と言い張れば近似になる。

823 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 20:40:03 ]
4点あるときにどの3点を選んで円弧にするかっていう話?

824 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 01:30:11 ]
円弧だけじゃなくて、適宜直線も使いたいってことかい?

825 名前:デフォルトの名無しさん [2007/05/02(水) 18:06:14 ]
たとえば、N点(3000点とか)からなる折れ線の図形があったとして、人間は図をかけば、適度にこの部分は円弧だろうとか、直線だろうとか、あてはめることができます。
それを、精度をあたえることで、コンピュータに計算で円弧+直線に解かせられないでしょうかね。


826 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:27:41 ]
使う円弧の数に制限が無いのなら、>>822の方法で指定点での誤差ゼロで描ける

使う円弧の数を減らしたいという要求があるなら
単純に端から3点でフィッティングして、次の点が誤差の範囲内ならと処理してもいいし
最小2乗円を求めては、誤差の範囲が収まるならとやってもいいとおもう

ただし、誤差だけでは、つなぎ目がガクガクに見えるという事になる
だから、それが嫌なら、点との誤差が幾ら以内で、接続が滑らかであるというような条件を追加しないといけない



827 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 19:42:29 ]
>>825
用途を書いてくれればもう少し具体的なアドバイスが出てくると思われ

828 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 20:19:07 ]
>>825
滑らかじゃなくていいなら既に色々レスついてるからそれ参照。誤差ゼロ。
滑らかである必要があるなら、確かに精度(許容誤差)を与える必要はあるだろう。
滑らかって何とか言うならもっと勉強しなさい。

829 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 00:50:19 ]
ペゾルドにかいてなかったっけ?

830 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 23:20:02 ]
ttp://www.emit.jp/prog/prog_div.html
の高速除算なのですが、
どうしてこれで正しく計算できるのか分かる方いませんか?

あと、割られる数が負数のときでも上手くいくような
つまり
X / D = Q (Qは整数)
のときに
-X / D = -Q
となるような高速除算の方法を知っている方はいますか?

831 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 01:13:49 ]
830のリンク先はなーんか誤差が出そうなやり方だなー。
定数除算なら、誤差項を1ビット誤差以下に抑えればいいから、こういうことは出来るけど。


32bit同士の乗算がオーバーフローせずに使える場合。
X/3 = [X/3 + 2n/(3*2^32)] (∵ 2n/(3*2^32) < 1bit )
= [ (2^32 + 2)/3 * (n/2^32) ]
= 1431655766 * n / 2^32
= 1431655766 * n >> 32

832 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 01:16:49 ]
あ、途中でXがnになっちまった……。
nが負なら最後に1足してくんなまし。

833 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 07:36:56 ]
>>830
Web上にある情報を、どれも正しいと思うな
Q=trunc(X/D +0.5) と計算したい筈なのに

m = 2*n-------------------1)
R = (2^m - 1) / D ---------2)
Q = (R * X + 2^n) >> m ------3)  から>>m を2のベキに変更して
Q = (R * X + 2^n)/2^m   Rに代入して
Q = ((2^m - 1) / D * X + 2^n)/2^m
Q = (2^m - 1) /2^m * X/ D + 2^(n-m)
   ~~~~~~~~~~~~~~~~      ~~~~~~~
(2^m-1)/2^m は1ではない
2^(n-m) は 0.5 ではない

これは単に使いたかった範囲で巧くいっただけだろ

834 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 11:48:36 ]
>>831,832
ありがとうございます。
一応、プログラムを組んで実験してみたのですが、
違う結果しか得られませんでした。
自分の理解が足りていないのかもしれません。
チェック用プログラムをアップしますので、確認していただければ幸いです。
kissho.xii.jp/1/src/1jyou6388.lzh

>>833
整数における割り算なので、やりたいのは四捨五入ではなく切り捨て、
つまりQ=trunc(X/D) です。
あと、使える値の範囲も>>830のページ上に書いてありますよ。

835 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 16:28:10 ]
>>834
831に書いた方法は、
R=(2^32 + F)/Dのとき、F=D-1では、多くのDで誤差が出る。
大事なのはRが割り切れることと、F/2^32が1bitより小さい正の値になること。
これが満たされない場合は、
R=(2^33+F)/Dとか、R=(2^34+T)/D-2^32なんかを使う必要がある。
(おまけに最後の例は最後に2^32分の補正が必要)
以上のようにR の決定がそんなに単純じゃないんだー。
だから定数除算って書いた。
っていうかハッカーのたのしみって本を買えばこういうことが書いてある。
興味あるならオススメ。

836 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 17:04:05 ]
>>830
swox.com/~tege/divcnst-pldi94.pdf

> Division by Invariant Integers using Multiplication
>
> 4 Unsigned division
> 5 Signed division, quotient rounded towards 0
> 6 Signed division, quotient rounded towards -∞




837 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 18:06:56 ]
ターゲットのチップにも寄るだろうけど、Intel系でって話なら普通に割り算命令使った方が速いんじゃね?

838 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 18:13:07 ]
>>837
実測してみないとなんともだけど割り算の結果を遅延評価するといいかもね。


839 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 23:59:10 ]
>>835
そうなんですか^^
ハッカーの教科書は持っていたのですがこんな話題があるとは知りませんでした。
ちょっと研究してみようと思います。

>>836
そのページを見てみたのですが、正確にやるのは結構大変なんですね^^
よく使う定数の除算のみを最適化して
あとはテーブルなりなんなりで処理することにしました。

>>837
pc11.2ch.net/test/read.cgi/tech/1168399966/99-
↑を見て欲しいのですが、x86のdiv命令は
おそらくもっとも効率化がめざましい命令の一種です。
最新の石ならばそのままが一番速いと思うのですが、
昔のCPUを考慮するとなかなかそういうわけにもいきません。

840 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 00:08:18 ]
>>839
この手の高速化は高級言語で記述してもコンパイラが糞なら無意味だし、そもそも可読性が落ちるので歓迎されない。
そうなるとアセンブラでの記述に限定されるわけだが、肝心のターゲットが書かれていないので議論するだけ無駄。
というかそもそもこのスレ向きの話題じゃない。

841 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 00:55:37 ]
なんでいまさら昔のPCのことを考慮する必要があるんだ

842 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 01:26:26 ]
>>840
その理屈で行くとハッカーのたのしみや>>836の内容は
まったく無意味ってことになりますね。
もちろんそんなことはなくて、
ビット演算やコンピュータ用数学(?)にはある程度の普遍性があります。
だから、ターゲットが明確に決まっていなくてもある程度は意味はあります。
(一応、特定アーキテクチャ専用の話題は避けたつもりなのですが、
div命令のレイテンシの話題はたしかにスレ違いですね^^)

>>841
ここでいう「昔のCPU」とは、Pentium4やAthlonXPクラスの
(多分)今一番普及しているCPUのことです。
さすがに考慮しないわけにはいかないです^^

843 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 06:19:35 ]
>>842
アセンブラ系スレなら有意義なんだろうが、それ以外の場所じゃ完全に無意味。
>ビット演算やコンピュータ用数学(?)にはある程度の普遍性があります。
これもない。現にシフト命令が異様に遅いコアが存在する。
5年10年前なら確かにその言い分は通用したが、複雑化したx86系CPUで
除算命令のような数クロックを稼ごうという時にターゲットも指定しないなんてありえないだろ?

844 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 07:11:01 ]
>>843
> アセンブラ系スレなら有意義なんだろうが、それ以外の場所じゃ完全に無意味。

んなことない。定数除算→乗算の最適化をやってくれない環境はあるし、自分
が仕事で使った RISC とかは加減シフトが実効 1 サイクル、乗算が 2 サイク
ルに対して除算命令は 33 サイクル(中で何やってるかわかるな。しかも除算
命令実行中に割り込みが入ると割り込み終了後に再度除算命令を実行し直す)。

> 現にシフト命令が異様に遅いコアが存在する。

後学のために教えてくれ。


845 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 07:46:16 ]
>>844
だから、それはアセンブラ系のスレでやってくれということでしょ

846 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 08:04:05 ]
負数での符号については423から、同じような事一度やってるからな。
速度だけの問題なら他でやって欲しい所。



847 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 09:09:48 ]
>>843
自分がもともと質問していたことは、除算→乗算+シフトの変換方法です。
(このスレのおかげで定数除算の最適化という分野があることを知りましたし、
特定の除算の最適化もできそうな感じです。
その点は本当に感謝しています)

確かに石によって演算速度の違いがあることは事実なのですが、
そういったこともふまえて、対象となるCPUをつらつら挙げて
CPU別の最適化方法をここで聞いた方がよかったのですか?
もちろん、自分的には大歓迎なのですが^^

>>846
収穫もあったことですし、自分はそろそろ去りたいと思います^^

848 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 10:32:12 ]
>CPU別の最適化方法をここで聞いた方がよかったのですか?
最適化スレもあればアセンブラスレもあるのに?

849 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 10:51:11 ]
特定のMPUの話じゃなければ充分メタな話出来るだろ…。
そういう命令セットの定義とかも数学の範疇じゃないのか?

850 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 11:24:26 ]
>>848
>CPU別の最適化方法をここで聞いた方がよかったのですか?
>>843
>除算命令のような数クロックを稼ごうという時にターゲットも指定しないなんてありえないだろ?
に対するレスです。
当然、自分の考えは>>848さんと同じで「それはスレ違いでしょ?」です。

>>849
命令セットの定義が数学の範疇だというのははじめて聞きました。
そうなのかもしれないのですが、
自分は特定アーキテクチャの最適化の話はここでするべきでは無いと考えたのです。

851 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 11:45:33 ]
何がやりたいから判らなくなってるが、ようするに、
R>0 Xは正負のint 範囲で

Q=trunc(X/D) を
Q= (int)(((long)X*(long)R + k) >> (long)m )

で計算したいが 適切な R と m を求むって事だろ?

852 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 11:45:45 ]
使える命令とその計算コストを厳密に定義した上で最適な計算を
求める問題ってのは、特に並列計算の分野で見ることがある研究だね。
実際のCPUくらいのコストモデルでやるのはかなり大変だと思うけれど

853 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 11:46:45 ]
ウザ…スレ違いだって言われてんだから素直に移動しろや。
少なくともここはアセンブラの話題振るスレじゃねえことくらいは理解してんだろ?

854 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 21:17:53 ]
離散的数の演算は数学だ。
ただ、その実装手段が大抵の場合アセンブラしかないだけ。
CPUの除算が遅いとか言い出したヤツが最初にスレ違い。


855 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 23:01:21 ]
車のスピード違反みたいだなw
除算は多倍長文字列でやった事あるけど、
別と比べて極端に難しかった。

856 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 01:50:28 ]
結局実装の話になると思うけどね。
ここがム板である限り。



857 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 05:32:05 ]
>>855
除算は四則のうち、唯一「トライ&エラー」的要素が必要になってくるからな。
「除法の定理」という、それほど単純ではない性質に則った結果にしなければ
いけないという縛りがその原因だろう。

858 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 15:26:24 ]
どっちかっつーと数学板向きの話題だな

859 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 08:21:46 ]
除算を自作でやってみると、0除算がなぜダメなのかが分かる。

860 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 08:28:33 ]
ニュートン法で除算を解く手順はどうなりますか?

861 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 08:37:57 ]
www.tensyo.com/urame/prog/ALGO.HTM
> a/b
>ニュートン法でcを更新すれば良い結果が得られます
> ニュートン法x-f(x)/f'(x)を適用するのに
> c*b-2^n=0 f(x)=b*x-2^n f'(x)=b とやったのではダメです
> b-2^n/c=0 f(x)=b-2^n/x f'(x)= 2^n/x^2
> x:=x-b*x^2/2^n+x=(x+x-b*x^2/2^n)=x+(x*(1-b*x/2^n));
> c:=c+(c*(2^n-b*c))/2^n と更新します



862 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 08:44:08 ]
>>859
除算をわざわざ自作しなくても簡単に判ることですが?
それとも、r = p / d を r * d = p に変形することもできないんですか?

863 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 09:10:47 ]
>>862
それだと
0 / 0 が定義出来てしまいますが?


864 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 10:23:45 ]
>>863
あんた馬鹿? dが0のときにpが0になるrは、一意には決まらないんですが。
つまり、0 / 0は数学的には解があるってこと。1 / 0とは事情が違う。

865 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 11:06:44 ]
>858
全くだなw

866 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 13:17:07 ]
北極の氷が融けて水面が上がるという話があるが、それがありえないのは
アルキメデスの原理を学んでいれば理解出来る筈だ。

実際にグラスに氷を入れて、水をすりきれ一杯にして、水がこぼれない実験をするまでは判らないのだろう

0で割るとどうなるかも、そりゃ数式を弄くれば予想は出来るが
それと、実際に計算させてみての実感とは違うものなのだろう



867 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 14:43:02 ]
海に浮かんでる氷が溶けても海面上がらないけど、
地面の上に乗ってる氷が溶けると海面上がるよな。

北極って、大陸ではないけど、
小さな島状の部分とか浅瀬もなく、完全に氷が海に浮いてる状態?

868 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 14:50:03 ]
実際に計算することと、計算過程をプログラミングすることは、違う。

>>867
どこまでを北極というかによって変わるが、基本的に北極海には問題になるほどの陸地はない。
勿論北米北欧ロシアの海岸線を含むわけだが、面積比で言えば問題にならない。

869 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 15:19:40 ]
問題なのはグリーンランドだよ
映画でアルゴアが言ってた

>>866
グラスに氷とかのすぐできるような実験もしないで
「本に書いてあるからそうなんです」って胸を張るような
中世の暗黒時代さながらの学問態度は取りたくないものだな
馬の歯は何本あるんだっけ

870 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 15:47:10 ]
www2.odn.ne.jp/seimei/essay271.htm

でも、氷河期が終わるんなら、氷床も無くなって当然では?


871 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 16:23:24 ]
>>866
>アルキメデスの原理を学んでいれば
うみのみずはしょっぱいです。でも、ほっきょくのこおりはしょっぱくないです。

872 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 16:41:13 ]
北極の氷でも海の水が凍ったものは 塩を含むだろう。
その上に降り積もった部分は違うだろうけど

873 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 16:43:46 ]
>>872
面白い考え方だな

874 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:09:45 ]
www.littlewaves.info/marine/wq_sgravity.htm
塩分濃度が35ppt で 温度15℃の時の比重が1.0263

つまり、塩が溶けると 1.035/1.0263 = 1.0085倍に膨張するといいたいわけ?

875 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:15:29 ]
>>874
つ[浮力]

876 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:15:36 ]
>>872
>海の水が凍ったものは 塩を含む
もしそうなら、半導体価格は今より何倍も高いはずだ。



877 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:16:37 ]
北極の氷はプログラムと関係あんのか?

878 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:17:15 ]
数学とは関係があるかもしれない。

879 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:18:24 ]
>>878
そんなことは聞いてねぇよ、北極の氷はプログラムと関係あんのかって聞いてんだよ

880 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:20:10 ]
>>879
あると思うの? んなことマジで聞いてるの?

881 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:23:48 ]
>>880
雑談でスレ埋めるな、って嫌味も通じない馬鹿か…

882 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:31:33 ]
そんな当たり前のことを承知の上でおちょくっていることにも気付けない?

883 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:32:49 ]
それもまた雑談なのだ。 同じ雑談なら、面白がる方がいいだろ
さて
blog.livedoor.jp/yuge15978/archives/8126608.html
のように、真水が凍った氷が溶けて水面が上がのが正しそうに見えるけど
氷が溶けると、塩水の濃度は下がるのだから、濃度が下がる事により容積は下がるので
その効果が打ち消す可能性もあり、やっぱり実験しないと判らない

884 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 18:35:54 ]
>>876
海氷の塩分濃度は10〜12gだそうだ。 海水の1/3程度だとはいえ、まだ塩分はそれなりにあるみたい

885 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 18:42:39 ]
>>871
たまに、海水は真水より比重が大きいのだから、
水銀の上で氷が溶ければ水面が上がるように、水面が上がるという人がいる。

でも、これは海水の主成分が水である事を忘れている。
氷が溶ければ真水ではなく、塩水になり、塩水は薄まる。
塩分濃度と比重は変化が小さい時には比例するので、
トータル水面は変わらないのさ。

極端に言えば、海水中の塩分と、水を別けて計算すればいい。

886 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 20:59:20 ]
ええと、
  氷の比重0.917
  水の比重1.000
海水の比重1.024
海水上に出る氷の容積は、1-0.917/1.024 = 0.104
氷が水になると1-1/1.024 = 0.023

一旦は水面は氷*2.3%だけ持ち上がるよね? その後塩水と混じると水面が下がるわけ?



887 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:48:44 ]
1

888 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:52:39 ]
2

889 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:54:08 ]
3

890 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:56:04 ]
4

891 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:59:28 ]
5

892 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 23:06:04 ]
6

893 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 23:16:00 ]
>>876
ヘンリーラウールの法則によると凍った海水には塩が含まれる


894 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:05:39 ]
7

895 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:08:06 ]
8

896 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:17:38 ]
9



897 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:35:25 ]
10

898 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:57:15 ]
11

899 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 02:43:23 ]
埋めようとしてるのは
はずかしいボケをしたお友達かな?

900 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 08:17:30 ]
スレ違いよりかはマシなんじゃないの

901 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 08:18:11 ]
痲疹よりは感染力低いな


902 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 20:26:08 ]
       __
 /\   /  /
 \ \ /  /______   _____     ___ ___    ___
  .\//  _______/ /__  __/ [][] _| |_| |__ _| |_
 /\ /__/ ______      / /     |    _  | |_  レ'~ ̄|
 \ \  /         /     |  |___      ̄|  | / / /   /| |
  .\/  / / ̄/ / ̄/  /      \__|     |  |  ̄ /_  /  | |_
   / ̄ ̄   ̄   ̄    ̄/              |_|     |__|   \/
 /\ ̄/ / ̄/ / ̄/  / ̄
/  / /   ̄   ̄ ̄   ̄/     
\/   ̄ ̄ ̄ ̄ ̄/  / ̄        2007 Summer @ Shou-nan
          / ̄  /            www.2ch.net/sea/
           ̄ ̄


903 名前:デフォルトの名無しさん [2007/06/04(月) 19:59:53 ]
このスレ vol3 は必要ですか?

904 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 21:16:03 ]
次スレの心配は950超えてからでいいよ

905 名前:デフォルトの名無しさん [2007/06/07(木) 14:35:14 ]
去年からはじまった totoBIGというクジがあります。
これは 引分、勝ち負け を0,1,2  の3値で表現して、14試合分を ランダム発券するというものです
売り上げの40%が一等原資、10%を2等以下で別けます。
300円でキャリーが無ければ上限3億円 キャリーがあれば6億円が1等賞金の上限です

でいつ買えば得なのか、還元率を求めたいと思いました。

2等以下はまず平均に出るとして 300円中 30円 とし、
1等原資は 売り上げX口として300*X*0.4+CY (CYはキャリー金額)
1等が1口以上出る確率は(1-(1-1/3^14)^X なので

30+(300*X*0.4 +CY)*(1-(1-1/3^14)^X)/X

と求まります。
が、上限が6億なので、155円以上の結果は正しくないと思えます。
どういうプログラムを作ればいいでしょう?

906 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 15:14:24 ]
980超えてからでOK



907 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 15:56:57 ]
>>905
P = 1/3^14 として
X 中 1個が出る確率* 当選金
X 中 2個が出る確率* 当選金
X 中 3個が出る確率* 当選金
を2項分布で確率を求めて累積したらいいんじゃないの?

もしかして、nCr とかオーバーフローするのかな?
ならポアソン分布で近似すればいいって、これも オーバーフローするか・・・・困ったね

908 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 16:06:19 ]
電卓で計算させたら、
やっぱりポアソン分布の方がオーバフローし易いみたいだな。

n個中k個の確率は2項分布なら
n!/(k! * (n-k)!)*p^k*(1-p)^(n-k) で、階乗をそのまま計算したらオーバフローするから
kの大きい所まで計算する必要はないから、 for 文で計算すればオーバーフローしないんじゃないかな

と無責任に言ってみる

909 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 17:26:18 ]
>>905
いつ買っても損をする。
なぜなら賭博とはそういうふうに出来ているから。

totoがダメだったのは、賞金頭割りだから順当な結果の回は1等数千円とかザラ、荒れるとビックリするほど当らない。
BIGはどうなるかわからんけど、totoで客離れちゃったからキャリー期待するのは難しいんじゃないかなぁ。
計算すんのは楽しいけどねw

910 名前:905 mailto:sage [2007/06/07(木) 18:38:35 ]
>>908
ありがとう。その式で計算させました。 JavaScriptですが
function combination(n, k)
{
var i,c=1;
for(i=1;i<=k;i++){ c=c*(n+1-i)/i;}
return c;
}
function P(n,k)
{
var p0=1.0/Math.pow(3, 14);
if(k==0) return Math.pow( 1-p0 ,n );
return combination(n, k) * Math.pow(p0,k) * Math.pow( 1-p0 ,n-k );

}

function kangen(CY , X)
{
var i;
var gensi=X*300*0.4+CY;
var umax=6E8;
if(CY==0) umax=3E8;//キャリーが無い時は上限3億円
var sum=0;
for(i=1;i<20;i++) { //iが1当の数
var a=Math.min(gensi/i,umax); //1等の配当は原資を当選数で割った金と上限の小さい方
p=P(X,i);
sum += i*a*p;//当選金総額x確率を掛算
if(p<1E-6)break;//計算誤差が6桁以下になれば終わり
}
return 30+sum/X;
}

911 名前:905 mailto:sage [2007/06/07(木) 18:43:51 ]
計算結果は、
キャリー 100万口 200万口 300万口 400万口 500万口 600万口 700万口 800万口 900万口
  0億円   53円  71円  79円  82円  86円  86円  88円  89円  89円
  1億円   72円  88円  101円  112円  113円  115円  117円  120円  123円
  2億円   90円  105円  117円  119円  119円  121円  123円  126円  127円
  3億円   109円  122円  126円  124円  125円  126円  129円  130円  130円
  4億円   128円  134円  130円  129円  130円  132円  134円  133円  133円
  5億円   144円  137円  135円  134円  136円  138円  136円  136円  136円
  6億円   145円  140円  139円  140円  142円  140円  139円  139円  139円
  7億円   147円  144円  143円  145円  143円  142円  142円  142円  143円
  8億円   149円  147円  148円  147円  145円  144円  144円  145円  144円
  9億円   151円  150円  150円  148円  147円  146円  147円  147円  146円
 10億円   153円  153円  151円  149円  149円  149円  149円  148円  147円
 11億円   155円  153円  152円  151円  150円  151円  150円  149円  148円
 12億円   155円  154円  152円  152円  152円  151円  150円  150円  150円
キャリーが4億でも還元率は50%の 150円ありません。
そして、いくらキャリーが増えてもやっぱり155円から還元率は増えません。
9億くらいキャリーが溜まって、やっと50%の還元率です。

計算があってるとすればヒドイ設計のクジです。

912 名前:905 mailto:sage [2007/06/07(木) 18:50:06 ]
あ、全体は、 htmlファイルに

<HTML><HEAD>
</HEAD>
<BODY>
/////////////// この間に >>910 のコードを入れる。///////////

var x,y;
document.write('<TABLE BORDER><TR><TD>キャリー');
for(x=100;x<1000;x+=100)document.write('<TD>'+x+'万口' );
for(y=0;y<20;y=y+1)
{
document.write('<TR>');
document.write('<TD ALIGN=RIGHT>'+y+'億円</TD>');
for(x=100;x<1000;x=x+100){
document.write('<TD ALIGN=RIGHT>'+Math.round(kangen(y*1E8,x*1E4))+'</TD>');
}
document.write('</TR>');
}
</SCRIPT>
</BODY>
</HTML>


913 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 18:50:42 ]
>>911
宝くじって大体そんなもんだよ。
もっとひどいこともある。
競馬は還元率75%らしいけどね。

914 名前:905 mailto:sage [2007/06/07(木) 19:02:03 ]
ヒドイと思ったのは、キャリーが少ない時に還元率が異常に悪い事です。
宝くじやロトよりも悪いです。

これでは、キャリーが8億超えないと買う気になれず、
だから売れないのでしょう。

14試合ではなく13試合にしておけば、1等の平均賞金は2億程度になりますが
5億キャリーすれば還元率が100%を越える事になり、もっと面白いクジになったでしょうね。


915 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 20:30:17 ]
>>914 そんな設定のくじは売り手が拒否する

916 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 20:47:34 ]
還元率なんて50%くらいが当たり前なんじゃ。
微塵でも還元率が100%超えちゃう可能性があるものはギャンブルとしてはちょっとどうかと。



917 名前:905 mailto:sage [2007/06/07(木) 21:08:52 ]
>>916
還元率が100%超えてる間は、当然みんなブッコムでしょ?
だから、心配は要らない。 というか売れてみんなハッピーだと思うけどな
13試合にすると平均は1億9千万だけど、この効果で売り上げが上がるだろうから
1等6億は逆に出易かったろう。

14試合にしたせいで、>>911のように全然面白くないクジになってしまったかと

だってキャリーが11億無いと、買うのは馬鹿ってクジだもの。

918 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 21:16:44 ]
作る側が馬鹿を釣るという意図しかもってないってのがよく分かってよかったじゃん

919 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 21:21:15 ]
くじの価格設定には理論付けが一応あるけど、
そこでは買い手が馬鹿であることを仮定するからねえ。

920 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 21:28:57 ]
キャリー4〜5億から、サマージャンボあたりと並ぶんじゃない?
そもそもマジでもうけたい人は宝くじなんてしないさ。

921 名前:905 mailto:sage [2007/06/07(木) 21:37:32 ]
まあ確かにそうだな。 馬鹿を釣りたいって事なんだろけど、
馬鹿でも欲は持ってるから、還元率が宝くじの45%より低いと買わないだろう。
回せる財布は限られてるからね。

で、買われないからキャリーが溜まらないの悪循環。
だから去年末からはじめて、1等がまだ2回しか出ていない惨状。

せめて、完全ランダムじゃなく、全部の組み合わせ 3^14 をシャッフルして
発行する方法にしておけば 480万口に1つは確実に1等が出るから
ずっと早くリミットの155円に達するのに、馬鹿だよね。


922 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 21:53:46 ]
で、あんたはどうしたいの。文句言いたいだけだったらチラシの裏にでも書いてね。
具体的になんか変えたいならこんなとこに書いてないで適切なところに行ってね。

923 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 22:18:49 ]
自分の能力を関与する余地の無いギャンブルは、基本的に損するだけなのよ。
まず、胴元が儲けを確保してから残りをどう分配するかっていう事を考えてる訳だから。
計算とかするまでもなく、ね。

BIGだろうがジャンボだろうが確率なんてあって無きがごとしなので、どっちが有利とかないな。
一枚も買わなければ確率0だから、とにかく一口買って、リターンがデカイ方に張るのが賢いやり方。
ジャンボを10枚セットで買う奴とかはどうかしてると思う。

もっとも、一口買う時点でノータリンの貧乏人と言われればそれまでだが。

924 名前:905 mailto:sage [2007/06/07(木) 22:37:02 ]
まあ、そりゃ既に1億くらい資産持ってるなら別だろうけど
資産200万以下で、貯蓄中なら、収入の2%程度までを 還元率が悪くても
億くらいのリターンのある宝くじに入れるのは悪くないと思うんだ。
コツコツ貯めるだけだと老後の資金でせいっぱい、生きてるだけでせいっぱいだもんね。

でも、そういう目的だと、宝くじの3等とか4等っていらないんだよね。
トトBIGは1等に40%集中だから、いいかと思ったけど、やっぱりダメだね



925 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 22:42:10 ]
totoBIGの売り上げが落ちた理由は、還元率どうこうじゃなくて、
14試合中引き分けが5試合以上とか、強いチームが負けまくってるとか、
つまりそういう、「見た瞬間にはずれがわかるくじ」が氾濫しまくってることが原因だと思う。

926 名前:905 mailto:sage [2007/06/07(木) 22:47:07 ]
そこらへんは、ランダムに発券されてるのを信じるなら問題ないと思うのだけど
まあ、最近は役所仕事は信じられないからアレだけど

それより >>911 の結果を見てしまうと
キャリーが9億以下の時に買う気になれない方が大きいと思うのだが?
300円で5円くらいは損しても許せるが、それ以上は俺は許せんのだけど




927 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 22:56:57 ]
本当に儲けたい人は宝くじなんて買わない。
株でも貯蓄でもいいけど、還元率が100%を超える金融商品なんてそれこそたくさんある。

じゃあ何でわざわざ宝くじを買うかっていうと、
やっぱり一時であっても夢を見れるからだと思うんだよね。
「もし3億当たったら何買おう?」とか考えるだけでも楽しいしwww

ただ、totoBIGの場合はそれが難しいみたいだね。
そもそも1/3の確率で引き分けが出るなら14試合中4試合が引き分けになるけど、
その時点でほとんどはずれだって分かる。

928 名前:905 mailto:sage [2007/06/07(木) 23:10:56 ]
>>927 それは金持ってるから言えるんだよ。
俺はこれから貯めるわけだからさ。

でもさ、株も確実に儲かるわけじゃないでしょ?
というか小金で株を景気の良い今買って景気が悪くなって金必要になって売ったら損するわけだしさ、
貯金は、サトウキビ燃料のせいで物価上がってインフレになりそうな今は目減りするだけのようだし
といって、土地は買えるだけ金ないしで、

まあ、ほんと、勉強でもして自分に投資でもするしかないけど
投資しても使い捨てられるだけのような感じだし。

929 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 23:44:12 ]
スレ違いに気づけ馬鹿

930 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 01:05:59 ]
>>928
いや、貯める目的ならなら余計に宝くじはやめとけ。
貯蓄なら確実だし、株だって還元率50%は無いから安心しろw

931 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 03:02:59 ]
この外基地はこのスレで何がしたいの
熊が人間に問いかけている

932 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 03:17:55 ]
新しいタイプの荒しだなw
プログラムが当たり前に書けるレベルの知能があるなら、完全ランダムの賭博はしないだろ。
そのへんが全く理解出来てない時点で905の程度が知れる。

933 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 12:49:48 ]
>>911
それで騙されて買う馬鹿がいるんだから
胴元にしてみればすばらしい設計ではないか


934 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 09:04:43 ]
いくつかの数値を32段階に量子化して表現するときって
(最大値-最小値)/(32-1)で32段階になると思うのですが、
これ、あってますか・・・?

935 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 09:17:25 ]
あってるかといわれても、そういう定義を選ぶかどうかの問題では?

936 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 09:22:46 ]
少なくとも31で割るのは間違ってるとは言える



937 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 09:37:51 ]
0と31を含めるのなら、それで32段階では?

938 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 14:42:47 ]
32で割ってから1足す方が良いですね

939 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 15:28:54 ]
ええと 32で割るというのは、何を割るのでしょうか?

入力をXとして
trunc( (X-最小値) / (最大値-最小値)* (32-1)) とやるか
round( (X-最小値) / (最大値-最小値)* 32 ) とやるか という話?



940 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 15:36:42 ]
量子化後の値域が [0 .. 31] なのか [1 .. 32] なのか [0 .. 32] なのか

941 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 17:15:56 ]
X[0.0 〜 2.0]の値を取る小数点数をY[0 .. 31]の整数型に量子化することを考える。
普通に考えると、こうなる。
(1) Y = trunc(X * 32 / 2.0) (X が 2.0 を含まない場合)
(2) Z = X * 31 / 2.0, Y = trunc(Z) (X が 2.0 を含む場合)
(3) Z = X * 31 / 2.0, Y = trunc(Z + 0.5) ((2)だとXがきっかり2.0のときしかYが31にならないので少し改良)

X が 2.0 を含まない場合は全く問題ない。
しかしそうで無い場合は、(3)を使っても
0.0 <= Z < 0.5 → Y = 0
0.5 <= Z < 1.5 → Y = 1
30.5 <= Z <= 31.0 → Y = 31 (Zの最大値は31のため)
つまりY=0, 31の場合だけ、とれるZの範囲が半分になってしまう。
この場合の量子化を正確に行うのは少し難しい。

改良案として、
 Z = X * (32 - delta) / 2.0 (deltaは適度に小さい数。Xが整数値ならdelta = 1)
 Y = trunc(Z)
としてYを計算する方法がある。
つまり、0.0 <= X <= 2.0 の値を 0.0 <= Z <= 31.99999... に写像してしまえばいい。

もう一つは、X = 2.0 や Y = 32 の値だけを特別扱いする。
つまり、
 Y = trunc(X * 32 / 2.0)
 if (Y == 32) Y = 31 (Y -= (Y >> 5))
としてしまう方法もある。

942 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 17:57:43 ]
実数の定義域が
[0, 32)
なんだから

量子化後は
[0, 31]
でいいよ


943 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 18:23:44 ]
> (X が 2.0 を含まない場合)
それ[0.0 〜 2.0]と書かない

944 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 01:06:42 ]
X が 2.0 を含まない場合は問題ないが、[0.0 〜 2.0] の場合は問題がある。
って言ってるんじゃないの。

945 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 02:46:10 ]
どうみても>941が表記わかってないだけだろ。

946 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:14:41 ]
画面の前のわからない僕ちゃんへ、ということでとりあえずWikipediaでいいかな
ja.wikipedia.org/wiki/%E5%8C%BA%E9%96%93_%28%E6%95%B0%E5%AD%A6%29



947 名前:デフォルトの名無しさん [2007/08/08(水) 07:42:25 ]
保守

948 名前:デフォルトの名無しさん [2007/08/12(日) 03:44:24 ]
板違いならすいません。
どうしてもわからないので質問したいのですが
DirectXで3Dのゲームを組んでるのですが、ある点からポリゴン面までの
最短距離をはかりたいのですが、数学的知識があまりなくうまくいきません
なんとか距離をはかる方法はないでしょうか?

ポリゴン面はとりあえず3点で構成されているただの一枚のポリゴンです。


949 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 07:01:48 ]
>948
ある点=点P、ポリゴン面=僊BCとする
次の3通りの可能性がある
1.面上の何処かが一番近い
  >面の法線ベクトルで点Pを通る直線がポリゴンと交わる時、交わる点が一番近い
2.3辺の線上の何処かが一番近い
  >1を満たさず、各辺と点Pからなる三角形の内角が90度を越えない場合、点Pと該当する辺に垂直に交わる点が一番近い
3.3頂点の何処かが一番近い
  >1と2を満たさない場合、3頂点のうち一番距離が近い頂点が一番近い

950 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 07:12:19 ]
|(PA×PB)・PC| / |AC・BC|
とかのほうがかえって早いとかは?

951 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 19:14:06 ]
丁寧なレスありがとうございます。
両方試させて頂きます。
ただ、今のところ面の法線をだして、面上の交点をだそうと試みてるのですが、
なかなか上手くいきません・・
とにかくもう少しがんばってみます


952 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 05:37:18 ]
なんとか上手いこといきました、ありがとうございました。

953 名前:デフォルトの名無しさん [2007/09/11(火) 11:29:54 ]
保守上げ。 970くらいで次スレたてるよていです

954 名前:デフォルトの名無しさん [2007/09/12(水) 11:37:52 ]
最近、離散数学のさわりをやって感動した者です。
商業系の高校行って、大学進学したもんで普通科高校でやる数学I-III、A-Cを
まったくやってないんだけど、中学3年の証明でつまずいてたヤツが、新課程の
数学I-III、A-Cを独学するに辺り、最適な参考書、数学攻略本は何があるでしょうか。

955 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 11:55:15 ]
学校の図書館で、読めそうなのを週に何冊か借りては読んだらいいと思うよ
面白そうなの1冊、単なる小説1冊、ちょっと難しそうなの1冊として
毎週続くようにね。

956 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 01:03:06 ]
読み物なら数学ガールなんて面白いぞ。



957 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 01:27:06 ]
>>956
俺もちょうど今日会社で数セミの紹介記事見て面白そうって思ったところだ
アマゾンで買ってみるか

958 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 05:14:16 ]
なにかと思って調べてみたらPerlの糞本だしてた結城浩か・・・イラネ

959 名前:デフォルトの名無しさん [2007/10/10(水) 18:28:53 ]
質問です。

離散データを微分したいのですが、
C/C++系で微分ライブラリって何がありますか?

オイラーみたいな?

960 名前:959 mailto:sage [2007/10/10(水) 18:35:40 ]
良く知らないのですが、

単純差分が1次、Eulerが2次、Taylorが3次、Runge-Kutteが4次、であってまつか?

961 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 18:58:15 ]
そんな詳しくもないけど、ルンゲクッタ法とかオイラー法とかって
数値微分じゃなくて、微分方程式の解、要するに求積の方のアルゴリズムじゃない?

微分の方は、離散点のデータしかないとなると、
差分近似するか、適当な関数で補完して微分するかくらいしか思いつかない。

962 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 22:05:41 ]
これか
ja.wikipedia.org/wiki/PID%E5%88%B6%E5%BE%A1


963 名前:959 mailto:sage [2007/10/11(木) 08:36:05 ]
全然わかんないよ(つД`。)ウワアン

964 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 09:54:37 ]
離散データから微分なんて出来る筈が無いだろ。
fs/4以上含まないとしても、荒い近似しか出来ない。

965 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 14:04:49 ]
連続の場合に微分、離散の場合は差分って言うんじゃないのか。
959は近似をしたいのか、差分を出したいのか、なんなのか。

966 名前:959 mailto:sage [2007/10/11(木) 14:25:08 ]
実は2階微分というのが分からなくてオイラーかな?とか色々考えたんですが、

2階微分って、もしかして、2回微分するってことですか?

それで微分とは等間隔の場合、隣の値と差分取るだけで良いのですか?



967 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 14:30:21 ]
なんというか、数学勉強しなおしたほうが。

>2階微分って、もしかして、2回微分するってことですか?
そう。
何回微分したかは rank、階っていう。

>それで微分とは等間隔の場合、隣の値と差分取るだけで良いのですか?
差分とるだけでいいというか、差分で近似するしか手がない。
サンプリング定理を満たすようなデータ列なら、
補完っていうかローパスフィルタで連続信号にできるから
それ使って数値微分(これも差分近似するだけだけど)で精度はあげれるけど。

968 名前:959 mailto:sage [2007/10/11(木) 14:32:04 ]
有難うございましたm(。。)m

969 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 19:51:43 ]
www.google.co.jp/search?hl=ja&q=%E9%9B%A2%E6%95%A3%E5%80%A4+%E5%BE%AE%E5%88%86&lr=

970 名前:デフォルトの名無しさん [2007/12/02(日) 00:53:44 ]
3Dプログラミングをやる場合、最低でも必要な数学の知識は何?

971 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 00:57:38 ]
まず、何が必要なのか自ずとわかる能力は必要だと思う

972 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:06:18 ]
数学と言ってもせいぜい学校数学だろ

973 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:22:29 ]
Matrix

974 名前:デフォルトの名無しさん [2007/12/02(日) 01:23:00 ]
>>971
線形代数しか思い浮かばんぜ

975 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:25:31 ]
新スレどうする?

976 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:26:26 ]
三角関数
運動方程式を解くための微分方程式についての知識



977 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:41:08 ]
>>975
立てようと思ったが、関連スレが存在するのかすらわかんね。

978 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:43:30 ]
>>977
プログラミングの為の数学と算数 vol.2

プログラムに必要な数学、算数に関する話題について
語りましょう。TIPS/Q&Aスレです。

関連板:
science6.2ch.net/math/

これでいいんじゃ?

979 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 19:08:46 ]
皆さん市販の数値計算ライブラリ使っていますか?
それとも自分でつくっていますか?ガンマ関数とかいろいろ
ライブラリ作るの面倒くさいよ・・・
購入したほうがいいのかな・・・

980 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 19:33:10 ]
boostとか使ってる

981 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 00:37:19 ]
フリーのライブラリ使えばいいんじゃね?

982 名前:デフォルトの名無しさん [2007/12/06(木) 00:29:06 ]
24時間経過寸前age

983 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 01:03:12 ]
流すか

984 名前:デフォルトの名無しさん [2007/12/06(木) 18:10:28 ]
10000000
↑上位1ビットの値 というのは一番左端の値であり、1ですか?

985 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 18:20:51 ]
8bitの値ならそうですね

986 名前:デフォルトの名無しさん [2007/12/06(木) 21:48:31 ]
上と下の区別もつかんのか



987 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 23:51:46 ]
馬鹿、そっちは左だ

988 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 23:57:44 ]
おい!
左をみろ!!→→→→→→→→→→→→→→→→→→→→→→→→→→

989 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:37:15 ]
>>984
十進数でも、
1234なら、1(千の位)が一番上の桁でしょうや。

990 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 04:23:48 ]
MSB
LSB
何の略だっけ

991 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 09:56:31 ]
Most (Least) Significant Bit

992 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 22:08:45 ]
LE、BEと交じるとどっちがどっちだかわからなくなるんだよなー

993 名前:デフォルトの名無しさん [2007/12/07(金) 22:28:55 ]
BSE って何の略だっけ

994 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 22:37:49 ]
Bin So Einsam
ドイツ語で自分は孤独だという嘆き。

995 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 06:07:08 ]
.

996 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 06:07:38 ]
.



997 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 06:08:09 ]
.

998 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 06:08:39 ]
.

999 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 06:09:10 ]
.

1000 名前:小倉優子 ◆YUKOH0W58Q mailto:sage [2007/12/08(土) 06:23:20 ]
1000ならジュースでも飲むか

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<259KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef