C++の機能だけで多倍長計算を考えるスレ

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
C++の機能だけで多倍長計算を考え。
1はコテハンじゃないのに単発
1は童貞なのに単発
1は長髪なのに単発
1は包茎なのに単発
1はアニオタなのに単発
1は低脳なのに単発
1はそろそろ自作自演なのに単発
1は育ち盛りなのに単発
1はうんこなのに単発
1は借金があるのに単発
1は膝に爆弾を抱えているのに単発
1は14.4モデムなのに単発
1はふくらみかけなのに単発
1は2日目なのに単発
1はTシャツを前後逆に着ているのに単発
1は一週間風呂に入ってないのに単発
単発質問でスレを立てないで既存をスレを利用ください。

C++相談室 part11
http://pc3.2ch.net/test/read.cgi/tech/1032345774/

***すれ立てるまでもない質問はここで 第22刷***
http://pc3.2ch.net/test/read.cgi/tech/1033050979/
結局、ここの連中は多倍長計算したことも
ないやつばっかりなんだろ?
そりゃまぁ、Double程度の精度で
ほとんどは十分だが。
>>19
わかったわかった、ググル能力もない君にいい Web ページ特別に探しておいたから、もう来るなよ。

ttp://hp.vector.co.jp/authors/VA018507/japanese.html
1は鼻にビー玉入れたら取れなくなって救急車で運ばれたことがあるのに単発
22デフォルトの名無しさん:02/10/06 00:57
アセンブラはC++の機能の一種だよな?
イソライソで使えるし。
1のセックスは単発
マトリックスは韓国製
24のマトリックスは単発
>>24
ぷっ
>>26
の知能は単発
1は陰毛がストレートなのに単発
俺のチンコは直立
でも単発
311:02/10/06 03:38
それにしてもよく続くこと(藁
1が降臨しても単発
今日短髪にしようと思う。
最後っ屁のような藁が痛々しい単発
1はアニメを録り逃したのに単発
>>1の「多倍長計算を考え」で止まってるのが意味分からん単発
1はリストラされたことを家族に言えず毎日スーツを着て公園へ出勤しているのに単発
381:02/10/11 01:55
ついに書き込みが止まってしまいましたな(w
1には「もう死んでください」といったのに単発
40デフォルトの名無しさん:02/10/11 04:13
多倍長の定義がわかりませんが?何か
多バイト文字列の2ちゃん表記だよ。
つまり文字列で数値を表現して実質無制限の精度で演算を行うこと。
>>42
(;´Д`)ハァハァ
>>42
(・∀・)イィ!!
C の機能だけで多倍長計算を考え。
1は長い夜なのに単発
47デフォルトの名無しさん:02/10/28 13:59
詳しくは知らないんだけど多分アドレスサイズというかバスサイズというかレジスタサイズが
32bitのマスィンで64bitの演算マンセーをするという通常の倍でヤっちゃうのが倍精度だと思う。
きっとadc eax, 1とかでcarryフラグを見てさ、どうにかするんじゃないかと感じる。
1はTシャツを前後逆に着ているのに単発
MIRACLでどうよ?
ttp://indigo.ie/~mscott/
C は糞
1は

class Double
{
 Double operator+ (const Double& rhs);
 ...
};

とかっていう C++ ではあたりまえの事さえ知らないのに短髪。
52 ◆y3A2MadQ16 :02/11/07 22:15
多倍精度整数演算をとにかく実現するだけならそれほど難しくないが、
(基本的なアルゴリズムならKnuthのThe Art of Computer Programmingに載ってる)
効率よく、加えて可搬性を高めようとすると中々難しい。

個人的な興味としてはTemplateの展開を利用してGenerativeに書くことで
効率よく書けないかなと言うのはあるが……。
その場合、できればマシン命令に依存したコードは書きたくないから
そのへんで性能がどうなるかだよね。

使いたいだけならGNUのライブラリ(MPだっけ?)を呼んでおくという手もあるけどね。

(多倍精度整数演算を利用して多倍精度浮動小数点演算&初頭関数演算なら実際に以前書いたことはある。)
53936:02/11/07 22:18
うちの大学のあふぉ教授は、Cを始めて1ヶ月の僕らに
多倍長演算をつかって1兆+1兆を計算しろと言いました。
僕らはまだ、配列までしかやってません。
関数のつくりかたすら知りません。
僕らはこんな教授でいいのだろうか?
そんな不安にかられ、2chにやってきました。
おいお前ら、うちの大学の教授になってください。
54 ◆y3A2MadQ16 :02/11/07 22:23
訂正:
初頭関数→初等関数

実装上の肝は乗算だぁね。特にケタが多いときには。
もし本当に自分で書くならKaratsuba法とFFTアルゴリズムは
ちゃんと勉強しとかかないとなー。>自分
55 ◆y3A2MadQ16 :02/11/07 22:35
>>53
計算するだけでいいならmain関数内でもできなくはない。
その上足し算は比較的簡単。

効率考えないなら10進一桁を整数一個に割り振って
必要な桁数分だけの配列で整数を表せば、
すごく楽にプログラム書けるよ。

一兆ったって高々十進で13桁でしょ?
足し算では桁数は1つしか増えないから14桁あればいいわけで
要素数14個の整数配列が使えればいいだけの話。
計算自身は筆算の要領でやればいいから全然悩むようなことはない。

結構悪くない例題だと思うけどね。
効率や使いやすさを気にしないならC歴1ヶ月でも十分書けるよ。

ちなみに難易度は 加算<=減算<乗算<除算 の順。
56 ◆y3A2MadQ16 :02/11/07 22:39
>>55
…のような訳で、決して無茶な問題設定ではないので
信じてついていっても多分大丈夫なんじゃないかなぁ。
まずどうやって定数 10億 をソースコード内に埋め込むかからだな。
文字列にしてパースするのか、プリミティブ型の値から計算で求めるのか。

個人的には C オンリー(!C++)なら構造体のイニシャライザに16進直埋めがお勧めだと思う。
>>53 「配列+制御文」程度の知識でできるよ。
あと必要なのは、Cの知識じゃなくアルゴリズムを考える頭。

Rubyのソースコードのbignum.cは結構読みやすい。

あとは
 http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/
 http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/m/mpAdd.html
でも見れ。
59 ◆y3A2MadQ16 :02/11/14 01:23
>>57
>>55で書いたような10進一桁を整数一つ方式(BCD類似の方式)なら
(効率は悪いが)整数定数と配列の初期化が直使えて楽。

ただ、効率を向上させるためには整数一個で表現する一桁に収めることのできる数が
できるだけ大きいほうが全体の桁数が減って容量的にも速度的にも都合がいい。
そのため>>58の例では一桁を0-9999に取っているが、
これなら4倍くらいは効率向上な上に定数には相変わらず整数定数&配列初期化を利用できる。

>>58
アルゴリズムといっても
足し算は素朴なもんで、筆算の要領で順にやれば取り敢えず計算できるから…。

難しいのは効率化のために
基数を整数型で保持できる限界の大きさに取った場合に
ケタ上がりを検出することだから…。

あと、奇手としては近頃のCPUの中に整数演算より
浮動小数点演算の方が早い(特に乗算)ものが
あることを利用して一桁の表現に浮動小数点型を利用するというのがある。
(整数の範囲では浮動小数点演算といえども誤差がない。)
60 ◆y3A2MadQ16 :02/11/15 16:13
ということで話を某大学の課題から元の話に戻して
C/C++等の言語で多倍精度整数演算を記述する際の問題を考えると…。

問題は高級言語で多倍精度整数を効率よく整数を計算できるデータ型を選び、
それで表現できるできるだけ大きな整数を基準に基数を決めた際に:

・キャリー(桁上がり)の検出(…キャリーフラグは見られない)
・乗算の実現(…整数乗算では最悪、結果の桁数が倍になる可能性がある。)

のように言語の持つ標準の整数演算の能力の限界を超えるということ。
61 ◆y3A2MadQ16 :02/11/15 16:29
インライン・アセンブラなどを使わず高級言語の範囲でこれらを解決する策としては

桁上がり:
・最上位ビットを使わないでおいて桁上がりを検出する
 (一桁で表現できる数が半分の大きさになり若干総桁数が増加する)

乗算:
・一語の半分の桁数しか使わない
 (簡単だが桁数、つまり容量と全ての演算の速度が単純に倍になる)
・一語を半分づつに分けて計算して合わせる
 (ロジックが複雑になり速度が低下する、
 またターゲットCPUに整数乗算命令があってもそれがうまく使われない可能性がある)

…ということになりアセンブラとくらべて
本質的に(最適化のよしあしとは関係なく)速度効率的にはよろしくないことになる。

(このあたりはプリミティブ・レベルの話なので
いくらtemplateでgenerativeに頑張っても解消はしない。)
>>61
乗算の時だけ一時的に倍容量のメモリに格納する。
っていうテを忘れてやしませんか?
具体的には?>>62
C 以外は糞!
全然スレと関係ないし、age荒らしに反応するのもどうかと思うのだが、
↑のって、C#って書こうとしてクッキー画面で#を消されたのだと思うがどうだろう
む、違った。俺の書いた#は生きてた。
67デフォルトの名無しさん:02/11/18 21:46
mppack(注:カニパックではない)がかなり張り切ってますね。
68デフォルトの名無しさん:02/11/21 07:35
符号無しなら  C=A+B で桁上がりがあったかどうかは

if C<=A then 桁上がり有り
69 ◆y3A2MadQ16 :02/11/21 19:56
>>68
そのコードだと引き算1回に相当するからなー。
一桁ごとに整数加算1と整数減算1になる。
単にキャリフラグを調べるコードの2倍の演算回数になっちゃうんだよね。

もう一つよくやるのは、
基数を語長より1ビット少なくしとくというテですな。
そうすると最上位ビットがキャリフラグの代わりになる。
これも結局余分にマスク演算をやるから計算量的には似たようなもの…。
C++で多倍長つくるなら
stringで数値を表現すればよさそうだ。
Javaのjava.math.BigIntegerクラス、java.math.BigDecimalクラスはStringで宣言できる。

C++で多倍長簡単にやりたければ、
C++のコードからJavaを呼び出して、
java.math.BigIntegerクラス、java.math.BigDecimalクラス
を呼び出せれば楽だと思われる。

Javaからの出力はJNI(Java Native Interface)を使用してJavaからC++を呼び出して、C++にBigDecimalなどのクラスの出力を渡す。

でだめだろうか?

どうせなら全部Javaだけでやってしまうのが楽なのだが。
Javaをベースにして、C++をどうしても使いたいところは
JNIでC++にアクセスする。こっちのほうが楽かな。
これらのクラスは、四則演算のみで、三角関数とか使えないから自分で作らなければならないが。

それに、Javaは遅いから嫌だといわれそうだ。
>C++のコードからJavaを呼び出して、

アホかと思ったのは俺だけですか?
>>71
ひろゆきのAAでズラと鼻水が飛ぶ奴を貼り付けたくなるな。
>>70 そんなのやるんだったら、
java.math.BigIntegerのソースを見て、C++に移植すりゃ良いだろ。
C++だと演算子のオーバーロードがあるので便利だしな。

しかしまぁjavaAPIのソースファイルはめちゃくちゃ大量にあるなぁ。
74デフォルトの名無しさん:02/12/24 02:15
ひょっとして終わった?w

今やってることがもう一段楽したら、
多倍精度浮動小数点演算に久しぶりに関わるかも知れんのにー。
75デフォルトの名無しさん:02/12/24 02:42
初めてActiveX DLLを作成することになったのですが、うまく例外を発生させることができません。
例外情報を渡すためのクラスとしてIDispatchインターフェースとExceptionクラスを継承したクラスを作成し、
例外発生時にはそのインスタンスを作成およびraiseして、クライアントアプリケーション側では、
そのインターフェースからエラー情報を取得するようにしたかったのですが、
クライアント側で発生する例外はただのExceptionになっています。
例外オブジェクトはActiveXとアプリケーションの間を飛び越えられてないようです。
ActiveXでエラー情報を渡す方法ってどのような方法がありますか?
ご、誤爆?>>75

(それともABoneビュワーのスレ混じり現象?)
>>71
>>C++のコードからJavaを呼び出して、
>アホかと思ったのは俺だけですか?
オブジェクト指向、XP, RUP, アジャイルな開発手法の優位性を考えれば
アホだとは全く思わないはずだ。


>>73
> >>70 そんなのやるんだったら、
> java.math.BigIntegerのソースを見て、C++に移植すりゃ良いだろ。
> C++だと演算子のオーバーロードがあるので便利だしな。
>しかしまぁjavaAPIのソースファイルはめちゃくちゃ大量にあるなぁ。
ソースファイルが大量になったらパッケージ化すればよい。
そしてFacadeパターンなどを適用するのだ。
これもオブジェクト指向、XP, RUP, アジャイルな開発手法の優位性を考えれば、不便だとは全く思わないはずだ。
演算子のオーバーロードはメソッドのがあれば不要だ。

そういう余計な機能は混乱を招く。そういう点もC#がC++と同じような結果に陥る可能性持っている一つ。

オブジェクト指向、、XP, RUP, アジャイルな開発手法の世界ではコーディング量が増えてでもコードの可読性を高めることを重要視する。そうすることで他人や未来の自分がコードを読み直したとき、痛い目に遭わなくて済む。
78 ◆y3A2MadQ16 :02/12/24 08:12
はぁ?>>77

漏れ71-73とは無関係で、普段JavaもC++も適宜使うがね、
それでも>>70な解決手段は一体どこをどうやったら正当化できるのか・・・。
(発注元が性能は重要視せずにC++で呼び出せるライブラリの納品を要求してて、Javaが手元にあって納期がとてつもなく厳しい場合とかか?w)
まだ、できあいの多倍精度演算ライブラリを探すって方が現実的だろう。
(実際Cで書かれたものは既に複数ある。C++から呼び出すならこの方がまだしもだろうよ。)

なんというか、論理展開に随分飛躍があるようなので、
その辺のギャップを埋めた説明を希望したい。
単なる流行のキーワードの羅列でなく根拠と判断基準がわかるような奴をね。
パフォーマンスと再利用はトレードオフの関係。
言語毎の組込型にするか、プログラムとしてリンクするか、外部のコンポーネントにするか。
規模に応じて適切に選択できなければならない。

適度なトレードオフができない奴は逝ってよし。
巨大なシステムをコンポーネント化しない奴も
小さなライブラリをコンポーネント化してしまう奴も、
同じくらいアホ。
よくわからないが職業プログラマは逝ってよし。
81デフォルトの名無しさん:02/12/25 11:33
>>78
> 漏れ71-73とは無関係で、普段JavaもC++も適宜使うがね、
> それでも>>70な解決手段は一体どこをどうやったら正当化できるのか・・・。
> (発注元が性能は重要視せずにC++で呼び出せるライブラリの納品を要求してて、Javaが手元にあって納期がとてつもなく厳しい場合とかか?w)
> まだ、できあいの多倍精度演算ライブラリを探すって方が現実的だろう。
> (実際Cで書かれたものは既に複数ある。C++から呼び出すならこの方がまだしもだろうよ。)

あくまで自分の目指すところにあわせた個人的な意見だが、
BigDecimalには四則演算用意されていないから他の初等関数を自作しなければならないが、
だからといってC/C++のライブラリをそのまま使うという気にはなれないのであります。
ポータビリティを重視してそれらのライブラリをJava化しています。
Bridgeパターン(一応、説明しておくと、デザインパターンの一種です)などを考えてい
なかったからメソッドに余計な引数が増えてしまった(割り算するときの丸めモード、小数点以下の桁数、級数を計算する回数または機械エプシロン)。
いずれはFacadeからそれらの自作した初等関数ライブラリを呼び出してカプセル化して、BigDecimalインスタンスを生成するときに余計な引数をインスタンスに含めてコンパクトにまとめることを考えています。

Java動かせるプログラムはC++でも動かせるので、
完成したこのプログラムをどうしてもC/C++と併用したければ(ポータビリティは減るが)JNIを使って
逆にJavaからC++のコードを呼び出し、Javaメインでプログラムを動かす。




82デフォルトの名無しさん:02/12/25 11:44
>>1
浅い話題はやめようぜ。
そんなのは学生のときの俺が1日で作った程度の浅さだ。

8382:02/12/25 11:45
もちろん俺は凡人だ。大学も留年してる。
>>82
プッ
85デフォルトの名無しさん:02/12/25 11:57
>>84何笑ってんだか。
ライブラリであるとでも言いたいのかな?ならばもっと浅いな。
>>82
はいはい・・・すごいね・・・あ〜すごいすごい・・・
>>86
なにが凄いの?
>>79
何を指してコンポーネントと言ってるの?

…っつか、このスレの話と直接の関連が見えないけど
ひょっとして誤爆?
>>82
そりゃ、掘り下げないでヤッツケで作るだけなら浅いだろう。
効率の良いアルゴリズムとか色々研究し出すと結構深いよ。
>>81
なんか本質的でない部分の説明(デザイン・パタンがどうしたとか)が気合入ってるわりに、
目標との関連でなんでそうしたいのかということがキチンと説明されていないような…。

既成のCライブラリを呼びたくないという理由は大体わかったが、
Javaはどっから噛んでくるの?

個人的にはこのスレタイのように
実装言語をC++へ限定するのは狭すぎると思わなくもないので
他言語での実装話があってもいいとは思うけど、
Java話とC++話が混じる理由はよくわからない。
仕事でプログラムした事のない大学生が
受け売りで覚えた技術を披露したいだけなんじゃない?
92デフォルトの名無しさん:03/01/06 13:39
>>90 JavaのほうがC++より楽にコーディングできるからね。
将来に対する備えでしょう。

Javaで作っておけば多言語への変換もC++からの変換と比べ楽ってことをいいたいんだろう。
93 ◆y3A2MadQ16 :03/01/06 18:55
>92
基本的な演算ライブラリをプログラミングするレベルで考えた場合、
C++とJavaで本質的にそんなに違うかな?
(なんならC++でもGCライブラリはあるし…。)
内容を理解するには作られたソースが頼りという種類のプログラムと違って
このテの数学的基本演算のアルゴリズムは数学的な記法で
抽象的かつ厳密な定義が存在してるから
「作っておけば変換が楽」というのは特に当たらないと思われるが…。
(人力でやるならソースtoソースで変換するより元の定義見ながら書いたほうが楽だろう…。)

ま、プログラミング初心者にとって言語のとっつき易さ(制約が多くて守られているから)は
若干Javaが上だろうが、代わりに関わる要素が多くて性能のチューニングはしにくい
(プログラム変更の効果が予想しづらい)とも思うのだが…。
繰り返し呼ばれることになる基本演算は柔軟性もさることながら性能が重要だからなぁ。

けど、別に言語対決をしたいわけじゃないよ。
Javaで書いてJavaで呼ぶとか、C++で書いてJavaで呼ぶとかいう選択は自然に理解できる。
(というかそういう決定を促す需要がワリと容易に想像できる。)
(さらにその延長線上で、コールバックのようなインターフェースを利用するなら
C++からJavaのコードが呼ばれるという事態が部分的にあるのも理解できる。)
ただ、わざわざJavaでライブラリを丸っと書いて
C++からそれを呼ぶという仕組みにしたくなるような事態が想像できないだけ。
「C++の機能だけで多倍長計算を考えるスレ」 なのに、Java のコードを呼ぶ話
が出てくるのは何故?
95 ◆y3A2MadQ16 :03/01/08 08:26
>94
それが私も疑問なので>>70の意図を問うているわけなのですよ。
96 ◆y3A2MadQ16 :03/01/08 08:28
>95続き
…とはいえ、多倍長だけでも十分話題が狭いので
C++での実装にこだわることはないかなとも思うのではありますが、
それでもJavaのルーチンをC++から呼ぶ理由は謎であるなと…。
まあ多倍長計算は目的に応じて設計するもんじゃないの?
暗号処理用とか
πを求めたいとか
汎用の作っても、あんまり使い道が無いでしょ。

昔2CHでもルカステストをFFT乗算を使ってやってたスレもあった
http://pc.2ch.net/tech/kako/993/993457354.html
98IP記録実験:03/01/08 21:47
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
>>598
訴えられても「誣告ですよ」と返せる様にソース固めて叩きゃ良いじゃん。
荒らさなきゃ良いじゃん。
100IP記録実験:03/01/09 02:56
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
IP記録がニュー速に及ぶ日はいつか。
そんなことより、N速のスレ保持数を300くらいに増やしてくれ
template<typename IntT>
class DoubleInteger {
  IntT high_;
  IntT low_;
// 以下,大胆に略
};

typedef DoubleInteger<unsigned long long> UInt128;
typedef DoubleInteger<UInt128> UInt256;
typedef DoubleInteger<UInt256> UInt512;
// 以下,極端に略

こういうモノを作ろうと画策中。
漏前ら,こんな私を 2 進数で罵倒してください。
ネットは常に変化し続けるのさ
>>143
どこの板が取っているの?
短い時間で味のある文章書くなぁ、、
qb も ooo も mentai も夜勤の巣も繋がらないんじゃ状況把握できないよ。
久々のヽ(゚∀゚)ノ dj! 攻勢、しかし鯖監視所では異常なし。どうなってるんだ?
>2ちゃんは悪権力と戦うために必要で

本気でいってるのかなぁ。。
>>907 そうさ、2ちゃん以外でやればいいのさ。

その結論がただ、淋しいだけなんだよ。
2ちゃんねるが衰退しちゃうんじゃないかってさ。
モルモットにされたのか

整理板の連絡スレに一応書いてきた
 ワロタ
5
単純に鯖が重くなることはないんすか?
ところで、アホーの投票祭り無いの?
俺は「2ちゃんねるってなに?」に投票してきたけど。
「氏ね」だとかはいいよね?
管理人は「逝ってよし」もダメだと言うのか!?
そうか、どうもです。
知らないこと多すぎ・・・
これくらいの反応しかないのか
しょせん2ちゃんはこんなもの
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
( ´ァョ)ノ< 忍者たん、久しぶりに見たのれすよ。
        あけましておまだとうございますた。
まぁ、非通知で繋がるフリー接続のプロバ経由で
お前等アクセスしなさい。
ID導入当時の話だからね。
今はもうないよ。
今のIDシステムは知らないけど、当時は
127.0.0.1の、127.0.0だったか、0.0.1を非可逆暗号化して、表示してた
ように記憶してる。
だから、全パターンをデータベース化しちゃえば、解析可能、と。

実際は解析しきってなかったから、「不明」になっちゃう場合が
多かったけど。
鯖代負担、やくざやチョンや企業や政治家もろもろの圧力に負けない、掲示板管理の絶妙さ

これらが揃わないと難しい。2chって本当奇跡的だったんだな(´-`).。oO
IPって何ですか?


<血液型A型の一般的な特徴>(見せかけの優しさ・もっともらしさ(偽善)に騙されるな!)
●とにかく気が小さい(神経質、臆病、二言目には「世間」、了見が狭い)
●他人に異常に干渉する(しかも好戦的・ファイト満々でキモイ)
●自尊心が異常に強く、自分が馬鹿にされると怒るくせに平気で他人を馬鹿にしようとする
(ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際にはたいてい、内面的・実質的に負けている)
●「常識、常識」と口うるさいが、実はA型の常識はピントがズレまくっている(日本の常識は世界の非常識)
●権力、強者(警察、暴走族…etc)に弱く、弱者には威張り散らす(強い者に弱く、弱い者には強い)
●あら探しだけは名人級(例え10の長所があってもほめることをせず、たった1つの短所を見つけてはけなす)
●基本的に悲観主義でマイナス思考に支配されているため、性格がうっとうしい(根暗)
●一人では何もできない(群れでしか行動できないヘタレ)
●少数派の異質、異文化を排斥する(差別主義者、狭量)
●集団によるいじめのパイオニア&天才(陰湿&陰険)
●悪口、陰口が大好き(A型が3人寄れば他人の悪口、裏表が激しい)
●他人からどう見られているか、体裁をいつも気にしている(「世間体命」、「〜みたい」とよく言う)
●自分の感情をうまく表現できず、コミュニケーション能力に乏しい(同じことを何度も言う、知障)
●表面上意気投合しているようでも、腹は各自バラバラで融通が利かず、頑固(本当は個性・アク強い)
●人を信じられず、疑い深い(自分自身裏表が激しいため、他人に対してもそう思う)
●自ら好んでストイックな生活をし、ストレスを溜めておきながら、他人に猛烈に嫉妬する(不合理な馬鹿)
●執念深く、粘着でしつこい(「一生恨みます」タイプ)
●自分に甘く他人に厳しい(自分のことは棚に上げてまず他人を責める。しかも冷酷)
●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(他人をけなして相対的に自分の立場を引き上げようとする等)


それと、O♀はエコヒイキきつくて、冷酷だからな。

A♂の異質排除×O♀の冷酷=差別・いじめ とあいなる。
居酒屋「すずめのおやど」を経営
株式会社すずめのおやど開発
民事再生法を申請
負債57億円

2003/1/10

なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが
面倒なので、全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。


実にさらっとひろゆきらしいでつ。。。


朝っぱらから2ちゃん三昧ですか
しかも煽りいれてヴぁかまるだしだな(藁)

>>98-130
何?誤爆?
>>104
罵倒するのは詳細聞いてからw。
>>97
どちらにせよ共通点は結構あると思うから、
汎用のものにもそれなりに意味はあると思うよ。
まぁ、特殊化するなら需要がソコソコ固まってないと厳しいし。
IPアドレスは番号みたいなもの。
ホストは、住所みたいなもの。
IPは郵便番号みたいなもの。
両方ばれるとヤバイネ!!
つうか(^_^;)本体のレス見てないのかな?w

542 名前:マァヴ ◆jxAYUMI09s 投稿日:03/01/12 02:22 ID:kxpim/a2
いやさ(^_^;)ここでプチ法廷ごっこやっても
しょせん机上の空論だよ?
実際争点となったっていうか、法理的に詰まった点とかけはなれてるもん・・・。

ぉぃぉぃ(^_^;)
137山崎渉:03/01/13 18:49
(^^)
☆★☆
|・∀・)♪  おあよーおあよー!
|⊂ ノ
|` J    朝だす、みんな起きるだす!!
139山崎渉:03/01/15 18:04
(^^)
140山崎渉:03/01/23 22:16
(^^)
141 ◆y3A2MadQ16 :03/01/25 19:59
>104
 ☆ チン     マチクタビレタ〜
                        マチクタビレタ〜
       ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) <  詳細まだ〜?
            \_/⊂ ⊂_ )   \_____________
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
       |   カモネギ  |/
1421:03/01/28 01:34
このスレ、実はまだあったんですね(w
143 ◆y3A2MadQ16 :03/02/09 00:46
>142
あったんですよ。

私はABoneブラウザでサーバ移転の対処方法がわかってなくて数日見失ってましたが。
それにしてもよく続くこと(藁
145 ◆y3A2MadQ16 :03/02/21 09:42
>144
ム板は2chでは比較的浮沈が激しくない方だから生き残れているのかも。
146デフォルトの名無しさん:03/03/01 03:05
どなたかモンゴメリ乗算について詳しい方、詳しく解説してあるサイトを
知っている方は居ませんか?
そのモンゴルお嬢さんて何?
FFTで演算量 n log n って方法じゃ
だめでつか?
149146:03/03/01 14:16
モンゴメリ乗算と言うのは、(x * y) % n
というような計算を、除算を一切使用せずに行うアルゴリズムです。

www.cqpub.co.jp/dwm/contents/0061/dwm006101510.pdf

を参考にプログラムしてみたのですが、正しい結果を返す時と、そうでない時が
あります。プログラムにミスがあるのでしょうか?
49出版キター
151デフォルトの名無しさん:03/03/01 15:53
>>149

ふーん モンゴメリ法は知らないし、まだ良く見てなんだけど
2のベキでない剰余をシフトと2のベキの剰余との差和で求める手法と積を組み合わせた感じみたいだね


前に メルセンヌ素数の判定の為に考えた方法だけど
n=2^k±1 の場合,
x,yを2組の実数のFFTして
ああしてこうすると、結構速かったよ。
>>146
よく分かんないけど二進展開とは違うの?
153146:03/03/01 18:18
>>151
RSA暗号に利用する予定なので、x, y, nは正整数限定なんです・・・

>>152
二進展開を厳密に知らないのでなんともいえないのですが、
x, y, nは、unsigned short(16bit)の配列にして扱ってます。
(つまり、65536進数です)これを二進展開というのでしょうか?
>>146
二進展開っていうのはこういうやつ。関係ないのかな?
typedef unsigned long int uint32;

uint32 modplus(uint32 a, uint32 b, uint32 m){
return (a > m - b)? a - (m - b): a + b;
}

uint32 modby(uint32 a, uint32 b, uint32 m){
uint32 sum;
for(sum = 0; b > 0; a = modplus(a, a, m), b >>= 1)
if(b & 1) sum = modplus(sum, a, m);
return sum;
}

uint32 modpow(uint32 a, uint32 k, uint32 m){
uint32 b;
for(b = 1; k > 0; a = modby(a, a, m), k >>= 1)
if(k & 1) b = modby(b, a, m);
return b;
}
155146:03/03/01 21:24
>>154
二進展開では、数値を全て法mで還元された状態で表現するようですね、
確か似たようなやり方にRNS表現があったと思いますけど、それとは違うのですか?
>>153
 ああ、て事は せいぜい100桁程度? で x,y,nは同じくらいの桁数なんでしょ?

なら FFT使えば多少速くなるかな でも モンゴメリ法とやらはとは関係ないか
158146:03/03/01 22:05
>>153
桁数は大体そのぐらいですね、もう少し多くなりますけど。
モンゴメリが無理そうなら、FFTを試してみます。
(諦める気はありませんが)

皆さん有難うございました、もう少し自分で考えてみます。
159146:03/03/01 22:06
ミスった↑
>>153>>157の間違いです・・・
この前VC+のテスト代わりに作ってみたけど、わかったこと。
「2進より10進パックの方が絶対楽」
10進パックって COBOL の? 16進数ダンプすれば数に見える方法?

それならまだ100進数の方が楽だと思うけど
162山崎渉:03/04/17 16:01
(^^)
163山崎渉:03/04/20 03:58
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
164 ◆y3A2MadQ16 :03/04/22 08:01
>160-161
速度・記憶効率のこと考えないならその方がいい。
ま、数式処理とかのコアに使うんでなく、
従来からBCDが使われているように国家予算スケールの加減乗除くらいなら
速さ・記憶領域的にもそれほどは気にならないかも。
保守。
>>165
終了ぽ?
167デフォルトの名無しさん:03/05/18 13:13
多倍長の四則演算が基本型の変数と同じように自然にできて、
VC++からも簡易に使えるライブラリは一つくらいあるだろう、と思っていたら
適当なものが無い。

http://www.nitoyon.com/vc/tips/multi_precision.htm
みたいにシンプルな機能が良いけれど、これは実現法が似非で桁精度が出ない。

あとは演算子をオーバーロードせず関数で演算させる古めかしい方法や、やたら
規模が大きくて組込むのに躊躇してしまうものばかり。

英語ソースを探そうと考えているが、多倍長演算を英語では一般に何と言うのだろう?
168デフォルトの名無しさん:03/05/18 16:38
>>160
数百桁の除算やpowmodをやらせようとすると
10進パックで実用的速度を出させるのは大変なこと。
256進数や65536進数など2の羃乗数でやれば
一晩で起こした簡易スクラッチでも
ある程度実用的速度にできるからおすすめ。
>>167
multi precision arithmeticsとかかねぇ。
170山崎渉:03/05/28 12:58
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
>>170
むしろこの過疎スレを応援してくれw。
ヒッソリと保守。
173デフォルトの名無しさん:03/06/09 15:38
>>168
むしろ100進・万進が実用的だと思うよ。
デバックも楽だし、加算減算ですぐにオーバフローしないから桁上がり処理も楽で速い
174デフォルトの名無しさん:03/06/09 16:29
↓なにこのページ…(*´д`)ハァハァ
http://3.141592653589793238462643383279502884197169399375105820974944592.jp/

誰か全部受信して何桁あるか報告きぼん。
>>174
add(30781)
までそらでいえる。
>174
20MB落としてもダウソが終わらないので途中でやめた
そのページってhtmlなのかな?
要求受けてから計算してたr何処までも逝くかも。
>>176
マヂかよ
179デフォルトの名無しさん:03/06/09 19:05
>>174
よく見つけた―ね
HTTP/1.1 200 OK
Date: Mon, 9 Jun 2003 10:11:47 GMT
Server: Pi-Server/0.1 (Unix)
Connection: close
Content-Type: text/html

だってさ。
>>176
前聞いたとき200Mくらいあると聞いた。
>>174
Googleのキャッシュは101302桁でつた。
>>173
一桁当たりの桁上がり処理の早い、遅いは機械語レベルでどうなるかってくらいの話だからなぁ。
一桁が2のべき乗ならビット論理演算、
ワード幅一杯まで使うときはCPUのフラグとか見るわけ(高級言語ではムリだが)で…。
これが10進だと引き算(比較演算)とかでやることになるだろう?
ビット演算なら引き算と大差ないし、フラグが見られれば追加の演算無しで直接分岐できる。

ちなみに、一桁にできるだけ大きな数をつめたほうが桁数が減って記憶領域とループの回数は減る。
デバッグは一度やれば終わりだし、整数の加減程度ならそんなに大変って程でもないよ。
(乗除は効率よく計算するのは基数がいくつでもどのみち大変だしw。)

ところで、そういや記憶階層を意識した最適化とかした例はあるのかな?
184デフォルトの名無しさん:03/06/10 03:14
そうかい? ワード一杯まで使うとアセンブラ使わないと厳しいわけで、C++の機能だけでって訳にゆかないでしょ?

もちろんcだけでも無理すりゃできるけど、効率が悪いコードになる。
2のべき乗進数でつくった多倍長整数を10進数で表示するのが大変。
それはあるよね。 
コードは大変って事はないけど、処理が重くなる。
デバッカでメモリイメージ見た時に簡単にチェック出来ないし
あ、でも、多倍長加算をcで無理してやる方法は2つあるんだけど、結構頭の体操的で面白いよ。

もちろんそれより長いレジスタにキャストしてってのはナシで

一つは計算前と計算後とで比較判断を組み合わせる方法
もう一つは論理演算を組み合わせる方法
>>184
まぁ、確かに「C++の機能だけ」という限定下ではそうなんだけどね。
でもその前提を守ることは速度と保守性のトレードオフですなぁ。
最適化が頑張って同等のコードを吐けるように助ける手立てとかは無いもんかね。

>>185-186
用途にも拠るが表示は実行回数が少ないから演算より多少遅くても割とOKなんでは?
デバッガでの表示に関しては多倍長数に限らないような。

>>187
加算はまだしも乗算がかなり悩ましくないですか?
189デフォルトの名無しさん:03/06/15 13:20
RSA等の暗号を使いたいのですが、
__int64の64bit程度じゃ実用になりませんか?
>>189
君の実用的の定義をくれたまえ。
>>190
極秘の伝達(今夜飲みにいかない〜?)とかがバレないレベルです。
>>187
掛算はCPUの掛算命令使わないとやっぱり速度出ないんだけど、
C++だけでやるなら、やっぱり100進万進の方が楽だな
>>192
CPUの乗算命令を使わないとしても
ヒトケタに収容できる数を大きくすると、桁数が減るので
速度効率とメモリ効率の改善に対してリニアに効くんですがね。
桁あふれの判定と10進変換をカプセル化してあれば、
それ以外の計算アルゴリズム自身は何進だろうが大して変わらないし。

100万進で楽できることってデバッグくらいでしょ。
それで楽できる分は大したことはないと思うから私はやらないだろうと思うけど。
ま、どうしても未練があるなら100万進で書き上げて
デバッグがあらかた終わったらヒトケタのサイズを変更すると言う手もないことはない。
リニアに効くと言っても、
16bitで 10000進数でも同じだけど 8bit マシンで 100進法と
バイナリの比較を考えると メモリ効率については log(100)/log(2) : 8 = で17%悪化する。
17%の差を大きいかどうかだけど、そんなに必死になる程のレベルじゃない。

掛算の場合、フルビットを使ってしまうと桁上がりをその都度やらなければいけなくなる
FF*FF=FE01 でFE01 でこれを中間レジスタに足すとまた上の桁にキャリーが上がってゆく可能性があり
ループが複雑になる。

99*99=9801 ならば 桁上がりがあっても、とりあえず加算したままにしておいて、1ループ終わってから処理出来る
もちろんここらへんアセンブラで書けばそれでもフルビットを使った方に軍配が上がるけど
普通にCで書くと、たぶん速度的には100進や万進の方が早くなったように思う。

まあ、中にはそれでもCレベルでもフルビット使った方が早く書ける奴もいるかもしれないが
>>194
なんで今時わざわざ8ビット話かわからんが…。
まぁ17%が許容できるかどうかは>>1の「C++/Cだけで」という前提が
どういう理由で出てきたかに拠るんだけどね。
それがハッキリすればマシン・コードをどの程度避けねばならないかもハッキリするわけで。
極端な話、学校の宿題レベルなら頑張ってチューニングするより
手っ取り早く動くものが出来上がるほうがいいわけだしね。
じゃあさ、100進と フルビットでそれぞれ

a[n] × b[m ] -> w[n+m]

for(int mm = 0 ; mm < m ; mm++) {
 for(int nn = 0 ; nn < n; nn++){
//  ここを埋めてみて
 }
//  ここも必要なら
}
なお、 (long)a[nn] * (long)b[mm] は計算結果がちゃんと収まるものとして
ごめん long -> unsigned long
>>196-198
まず餅つけ。で、順番にナニがいいたいのか整理してみれ。
保守。
201山崎 渉:03/07/15 10:51

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
202山崎 渉:03/07/15 14:02

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
>>196-198

もちついた?
続きキボンにゅ。

山崎に保守されてるようなこの状況はなぁw。
ホシュ。
205山崎 渉:03/08/02 02:52
(^^)
206山崎 渉:03/08/15 17:56
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
実は今書いてる。
乗算をFFTでやって、テンプレート・メタ・プログラミングで記憶階層毎の最適化対応の奴。
一応、プロファイル・ベースで自動チューニングまで考えているんだが…。

…だが単なるFFTのプログラミングとデバッグで1週間も掛かった…このペースではダメぽ。
保守。
だれだsageで保守してるやつは
210デフォルトの名無しさん:03/12/30 05:46
ほしゅ
211デフォルトの名無しさん:03/12/31 22:52
募集
2121:04/02/07 03:08
保守
2131:04/02/29 22:34
ホシュ
実はboostのsandboxにbigintクラスがあるぞ
なんで正式版に入らないのかはわからないが
215デフォルトの名無しさん:04/06/01 10:03
じぃえぇむぴぃ
>>207
実は前段階のFFTについて、
テンプレート・メタ・プログラミングで記憶階層毎の最適化対応の奴。
一応、プロファイル・ベースで自動チューニング…
…ってのがやっと一通り動いたので先日青森で開かれた研究集会まで行って発表してきた。

多倍長整数の乗算はまだ遠い…。
2171:04/09/08 20:45
保守
2181:04/09/16 04:17:21
age
219デフォルトの名無しさん:04/09/18 01:23:27
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
220デフォルトの名無しさん:04/09/18 14:58:36
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
2211:04/12/26 02:39:03
やばい!落ちる!
222デフォルトの名無しさん:05/02/05 10:23:00
age
223デフォルトの名無しさん:2005/05/12(木) 10:09:51
すいません
char mozi[]="unko"; この文字列は16進数値で「756E6B6F」
ですけどこの数値を2バイトごとの合計値として求める場合
「756E + 6B6F」が適切なのか、それともバイト反転した「6E75 + 6F6B」
が適切なのかわからないので教えてくださいお願いします
224223:2005/05/12(木) 12:52:52
やっぱいいです
225デフォルトの名無しさん:2005/05/13(金) 09:28:43
NUXI problem
226配列だけ:2005/05/15(日) 13:10:58
>>53
できたよ
#include <stdio.h>
#include <string.h>
#define MAX 20
int main()
{
int i;
char result[MAX + 1];
char *a = "1000000000910";
char *b = "1000000000193";
for (i = 0; i < MAX + 1; i++) result[i] = 0;
for (i = 0; i < strlen(a); i++) result[MAX - strlen(a) + i] += a[i] - '0';
for (i = 0; i < strlen(b); i++) result[MAX - strlen(b) + i] += b[i] - '0';
for (i = MAX - 1; i >= 0; i--)
{
if (result[i] >= 10)
{
result[i - 1] += 1;
result[i] -= 10;
}
result[i] += '0';
}
printf("%s(a)+%s(b): %s\n", a, b, result);
return 0;
}
227デフォルトの名無しさん:2005/05/15(日) 13:11:52
hage
228デフォルトの名無しさん:2005/05/15(日) 13:17:32
訂正
#include <stdio.h>
#define MAX 20
int main()
{
int i;
char result[MAX + 1];
char a[] = "1000000000910";
char b[] = "41000000000193";
for (i = 0; i < MAX + 1; i++) result[i] = 0;
for (i = 0; i < (sizeof(a) - 1); i++) result[MAX - (sizeof(a) - 1) + i] += a[i] - '0';
for (i = 0; i < (sizeof(b) - 1); i++) result[MAX - (sizeof(b) - 1) + i] += b[i] - '0';
for (i = MAX - 1; i >= 0; i--)
{
if (result[i] >= 10)
{
result[i - 1] += 1;
result[i] -= 10;
}
result[i] += '0';
}
printf("%s(a) + %s(b): %s\n", a, b, result);
return 0;
}
229デフォルトの名無しさん:2005/05/15(日) 15:28:17
>>53 名前:936[age] 投稿日:02/11/07 22:18
                 ~~~~~~~~~~~~~~~~
>>226 名前:配列だけ[sage] 投稿日:2005/05/15(日) 13:10:58
                      ~~~~~~~~~~~~~~~~~~~~~~~~

( ゚д゚)

(つд⊂)ゴシゴシ

(;゚д゚)

(つд⊂)ゴシゴシ
  _, ._
(;゚ Д゚)

230デフォルトの名無しさん:2005/05/15(日) 20:10:45
当時1年でも今4年だな…(ちゃんと単位取れてれば
2311:2005/05/16(月) 02:16:33
あれからもう1年半も経つとは…長いなぁ
2321:2005/05/16(月) 02:17:01
間違った
「あれからもう2年半も経つとは…長いなぁ」
233デフォルトの名無しさん:2005/05/16(月) 13:35:28
あれから僕たちは何かを信じてこれたかなぁ
234216:2005/10/28(金) 01:15:42
>>216なFFT話を発表してきたのがきっかけでお仕事にありつきますた。
仕事は多倍長からはかなり離れてしまったけれどね。
しかしこのスレまだあったんだねぇ。人少ないけど長寿だねぇ。

たまにはage保守しときまつか。
235デフォルトの名無しさん:2005/10/28(金) 10:48:25
このスレは216の人生を記すスレとなりました。
236デフォルトの名無しさん:2005/10/28(金) 11:46:15
>>400は3年後の>>216
2371
このスレまだ存在してたのか。確かに長いなぁ。
新着チェックで上がってこなかったら気付かなかった。