プチコン3号 SmileBASIC コミュニティ返信[60]親投稿れい rei-nntnd2017/5/19 14:00A(x) = Σ x^k a_k (k=0..m) はxのm次多項式だよね m次多項式のxに進数のnを入れたときの値であり nのべき乗がなすm+1次空間の基底ベクトルとの内積である これが「n進数」の数学的に(たぶん)同値な表現。 で、負数に関してば「たまたま四則演算に都合がよい」ので補数を負数と見做して使っている。 これは上記の表現を「nのm乗のmoduloが張る体であるとみなす」のと同値で、 上で書いたように「0近辺で連続」である性質もある。1そうだね プレイ済み2017/11/03 17:24:53に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿れい rei-nntnd2017/5/18 15:25え。 もしかしてここってスー氏が構想を練る場所じゃなくて 要望を書いてもいいの? なら りんごの変わりにこりんご氏が飛んでくるバージョンお願いします 8そうだね プレイ済み2017/11/03 17:24:47に取得
プチコン3号 SmileBASIC コミュニティ返信[52]親投稿れい rei-nntnd2017/5/18 2:36MIKI氏 > そうなの?? どうやって??? スー氏、みなつ氏の書き込みを参照。 最上位桁に符号の重みを押し付けりゃそれでいい。 もちろん最上位だけに押し付けなくても構わない。 2桁3進数の例なら20なら-3としておけばよい。 -12で-4としても構わんが、その倍重みづけは場合分けが多くなるが どうせmoduloなので構わない。 おちゃめ氏 > 補数を負数で表現しているためです。 負数を補数で表現している。 1そうだね プレイ済み2017/11/03 17:24:53に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿れい rei-nntnd2017/5/17 19:31?? 画像ある≒デザイン終わってる≒完成してる なんだ出来てるんじゃん7そうだね プレイ済み2017/11/02 22:53:43に取得
プチコン3号 SmileBASIC コミュニティ返信[41]親投稿れい rei-nntnd2017/5/17 13:27あー 抜けがないように完全に、かつ簡便に説明するのはむずかしいなぁ 抜けだらけ、表現の不備だらけだ。 正しい表現、正しい用語などというのは手に入らない理想郷なんだなぁ ガンダーラだわ 2そうだね プレイ済み2017/11/03 17:24:54に取得
プチコン3号 SmileBASIC コミュニティ返信[12]親投稿れい rei-nntnd2017/5/17 13:16すばやさはdexではなくagi!4そうだね プレイ済み2017/11/03 17:24:51に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿れい rei-nntnd2017/5/17 13:13残念ながらsinやcosなどはその程度の工夫ではダメで、すぐに発散してしまう。 数項くみあわせると多少ましになるが、それでもごくわずかしか効かない。 なにしろ各項が指数関数的にでかくなるわけなので、誤差もその程度に大きくなる。 誤差をたかだか定数倍ほど減らしても焼け石に水なんだわ。 より詳しくは…ここには書ききれないし、俺にはすぐには書けない。 numerical recipesなどの名著を参考にしてくれ。1そうだね プレイ済み2017/11/03 17:24:48に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿れい rei-nntnd2017/5/17 6:23あーすまん。全然正確な言い方ではなかった。 > きっとxは大きくても複素数でも問題ないのでしょう。 そりゃ分母にn!入ってるし収束はする。がその速度と精度が違うのが問題。 計算精度内で収束するにはxが小さくないとダメ。 > nが大きくなるにつれ、計算過程で2^53を越える値が出てきた。その結果 2^53では表現しきれない値が出てきたので足し算引き算した結果誤差が大きくなってしまった。 とくにsinやcosの場合符号の異なる数字を足すことになるので「桁落ち誤差」が生じる。 これが主な理由。 2そうだね プレイ済み2017/11/03 17:24:48に取得
プチコン3号 SmileBASIC コミュニティ返信[12]親投稿れい rei-nntnd2017/5/17 2:26問題ないな もし問題があるとすればクソしょぼいインターフェースとまさに典型的なスパゲッティソース せめてコメントくらい書けと1そうだね プレイ済み2017/11/02 22:55:46に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿れい rei-nntnd2017/5/17 1:35プチコンは64ビットの浮動小数点数を使っている。 「倍精度」というやつ。 符号部1ビット指数部11ビット仮数部52+1bitで、 11ビットなので 上限は2^1023程度 でも問題はそこじゃないんじゃないかね テーラー展開、収束するにはxが小さくないとだめでしょ。 2そうだね プレイ済み2017/11/03 17:24:48に取得
プチコン3号 SmileBASIC コミュニティ返信[32]親投稿れい rei-nntnd2017/5/17 1:26> 技術用語は正しく使わないと混乱招くし > 特に初心者相手に誤った知識を植えつけるのはよくないドン 前提知識が少ない人への説明はなかなか難しいし、 独学で学んだ人は専門用語を知らないことも多いし。 特に初心者には、いろいろな解釈・説明があった方がいいし。 なので、それぞれが自分の解釈を伝えたらいい。 その解釈に専門用語が対応しているのならば誰かが言えばいい。 「正しく専門用語を使うべき」とMIKI氏が思うのであれば、 負数についても「正しい概念」と「正しい専門用語」を示さねば。 説明の都合などで難しいのであればせめて「正しい専門用語」への言及を。 4そうだね プレイ済み2017/11/03 17:24:54に取得
プチコン3号 SmileBASIC コミュニティ返信[31]親投稿れい rei-nntnd2017/5/17 1:02> 技術用語は正しく使わないと混乱招くし > 特に初心者相手に誤った知識を植えつけるのはよくないドン > 符号付 32bit 整数として解釈する場合、最上位ビットの重みを (-(2^31)) とするんだドン。 符号付き32bit整数は「2の補数」表現を用いて表されます。 これは、-1を&HFFFFFFFF、-2を&HFFFFFFFEとするような表現で、「0」前後でも連続しているのが特徴です。 そのため、繰り上がりを無視すれば符号なし整数の加減算がそのまま使えます。 &H7FFFFFFFと&H80000000では不連続のため、注意する必要があります。 数学的に言えばmodulo 2^32の有限体です。 10進数や他の進数で解釈したい場合には通常の2進数表記と同様、「各ビットに重みを与えた数」としても解釈することが可能です。 ただし、最上位ビットは-(2^-31)とします。2そうだね プレイ済み2017/11/03 17:24:54に取得
プチコン3号 SmileBASIC コミュニティ返信[30]親投稿れい rei-nntnd2017/5/17 0:42「負の数は2^31を引いた数」 とか 「&HFFFFFFFFが-1で、見かけの数が小さくなるときに絶対値が増える」 とかでも性質がすぐには見えないが、むしろこれらの説明の方が本質で正しい。 「重みづけ」では連続していて稠密であることがわからない。 上にも書いたように、「2の補数表現」は「重みづけ表現」の特殊な場合なので、「重みづけで解釈できる」ことが「2の補数表現」の利点でもある。 「符号ビット」と「最上位ビット」の違いに拘る厳密性を言うのであれば「補数」と「重みづけ」にも厳密性がいる。 もし重みづけで解釈するのであれば、「なぜその重みにしたのか」が説明されなければ。 3そうだね プレイ済み2017/11/03 17:24:54に取得
プチコン3号 SmileBASIC コミュニティ返信[29]親投稿れい rei-nntnd2017/5/17 0:34> みなつさんへのコメントで書いたけど偶数進数の場合に限ってなら最上位桁に正負持たせればいいですね。 全ての進数において、補数表現で「最上位に符号を持たせる」だけで正負の表現が可能。 で、「補数表現」は「重みづけ表現」の特殊な場合なので 当然ながら「重みづけ表現」でも正負の表現は可能。 奇数でも可能。 > 一意性は犠牲になるけど、最後に正規化すればいい。 もちろん、まともな表現なら正規化すればなんでも使える。 ならばそれは「2の補数表現」を使う理由にはならないし、同様に「重みづけ」を使う理由にもならない。1そうだね プレイ済み2017/11/03 17:24:54に取得
プチコン3号 SmileBASIC コミュニティ返信[24]親投稿れい rei-nntnd2017/5/16 16:51他の「数値の表現方法」を知っていると利点や欠点がわかる。 有名(だけど最近みない)な手法にBCD(2進化10進数)というのがある。 4bitで0-9までを使う。A~Fは使わない。たとえば13なら 00010011 というビット列になる。 これも「各ビットに重みをつけてる」と解釈できる。 (下位ビットから順に1,2,4,8,10,20,40,80,… が、2進数加減算命令・回路で計算はできない。 繰り上がりがあると死ぬ。 一般に重みづけ数は繰り上がりが美味しくない。 補数表現だけが繰り上がりに問題がない。 4そうだね プレイ済み2017/11/03 17:24:54に取得
プチコン3号 SmileBASIC コミュニティ返信[23]親投稿れい rei-nntnd2017/5/16 16:39補数でなく、単に重みづけとして解釈した場合、 ・「非負」の判定を最上位ビットのみでできることの解釈が簡単ではない。 ・負数を含む加算減算が正数のみの加算減算と同値にできることの解釈できない。 など多数の問題があるが 本質的には ・「一意性」の保証がない のが問題だろう。 ただの重みづけでは、同じ数字を表すのにただ一通りのビット列しかないことを保証できない。 一意性を確保するのには最上位ビットの重みに特別な値を使わねばならない。 それはまさに補数であって。 唯の重みづけ数ではない。4そうだね プレイ済み2017/11/03 17:24:54に取得
プチコン3号 SmileBASIC コミュニティ返信[14]親投稿れい rei-nntnd2017/5/15 22:16最上位bitが特殊なのはそのとおりだが、 「重み」解釈は微妙だろう。それだと利点が見えない。 最上位bitが特殊な重みをもってるんじゃない。 「補数」を負数として使ってるんだ。 補数ってのは「足したらピッタリくりあがる」数。 0から9999までしか計算できない電卓で 10+(‐3)をやるとするじゃん? 10+9997=10007 上の桁無視したら答えでる。これとおなじ。7そうだね プレイ済み2017/11/03 17:24:54に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿れい rei-nntnd2017/5/10 20:27旧3DSで動くか確認するのとても大変で。 各種命令について、各機種での速度がわかるととても有用なので、 いろいろな命令の速度を測って表示してくれると嬉しいなぁ。 1そうだね プレイ済み2017/11/02 22:57:23に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿れい rei-nntnd2017/5/10 19:35訂正 誤 >巡回セールスマン問題ですらO(2^n)なのに 正 >巡回セールスマン問題ですらO(2^n)では解けないのに1そうだね プレイ済み2017/11/02 22:57:28に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿れい rei-nntnd2017/5/10 19:34巡回セールスマン問題ですらO(2^n)なのに 目的地が動くアルパカは、3DSじゃ全然時間たりない。 なので自動パカは実は「アルパカに向けてリンゴを投げてる」。 ズルいけど。 同様に、毒リンゴを避けるのはとても難しい。計算とても大変。 なので、自動化するなら同じようにズルをするしかないな。 「アルパカに当たらないように毒リンゴを投げる」 2そうだね プレイ済み2017/11/02 22:57:28に取得