●ハイパーかけ算

「●ハイパーかけ算」の編集履歴(バックアップ)一覧はこちら

●ハイパーかけ算」(2009/05/31 (日) 17:28:08) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*情報 作者名:五十六 引用元:[[なでしこプログラム掲示板「ハイパーかけ算」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=906&rev=&no=0]] *概要 巨大な数値のかけ算をする。 *解説 ***引数 A:数値 B:数値 ***返り値 A×Bの計算結果 *サンプルプログラム #普通に3^50を計算すると・・・? #例1 結果=1。 50回、結果=結果×3。 結果を言う。//7.17897987691853E23 #例2 3^50を言う。//7.17897987691853E23 #しかしハイパーかけ算ならば! 結果=「1」。 50回、結果=結果と「3」でハイパーかけ算。 結果を言う。//717897987691852588770249 *//本体 ●ハイパーかけ算({文字列=?}AとBで)   元数値A=A。元数値B=B。   数値A=元数値Aを文字列分解して配列逆順。数値B=元数値Bを文字列分解して配列逆順。   ひっさん表列=空。   //かけあわせ   数値Bで反復     B回数=回数。ポケB=対象。ポケAB親=0。     数値Aで反復       A回数=回数。ポケA=対象。ポケAB=ポケA×ポケB+ポケAB親。              ポケAB子=ポケABから1バイト右部分。ポケABから1バイト右端削除。       ポケAB親=ポケAB。もし、ポケAB親=空ならば、ポケAB親=0。       ひっさん表列[(B回数-1),((A回数-1)+(B回数-1))]=ポケAB子。          もし、ポケAB親≠0ならば       ひっさん表列[(B回数-1),((A回数-1+1)+(B回数-1))]=ポケAB親。       //最大でも、9*9=81 なので一桁分でおっけーね!         //縦に足し算   ひっさん結果=空。ポケAB親=0。//←くりあげ要員   (ひっさん表列の表列数)回     ポケAB=ひっさん表列の(回数-1)を表列合計。ポケAB=ポケAB+ポケAB親。     ポケAB子=ポケABから1バイト右部分。ポケABから1バイト右端削除。     ポケAB親=ポケAB。もし、ポケAB親=空ならば、ポケAB親=0。     ひっさん結果=「{ひっさん結果}{ポケAB子}」。   もし、ポケAB親≠0ならば     ポケAB親=ポケAB親を文字列分解して配列逆順して空で配列結合。//左右逆     ひっさん結果=「{ひっさん結果}{ポケAB親}」。   ひっさん結果=ひっさん結果を文字列分解して配列逆順して空で配列結合。   ひっさん結果で戻る。 ---- #comment() ----
*情報 作者名:五十六 引用元:[[なでしこプログラム掲示板「ハイパーかけ算」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=906&rev=&no=0]] *概要 巨大な数値のかけ算をする。 *解説 ***引数 A:数値 B:数値 ***返り値 A×Bの計算結果 *サンプルプログラム #普通に3^50を計算すると・・・? #例1 結果=1。 50回、結果=結果×3。 結果を言う。//7.17897987691853E23 #例2 3^50を言う。//7.17897987691853E23 #しかしハイパーかけ算ならば! 結果=「1」。 50回、結果=結果と「3」でハイパーかけ算。 結果を言う。//717897987691852588770249 *//本体 ●ハイパーかけ算({文字列=?}AとBで)   元数値A=A。元数値B=B。   数値A=元数値Aを文字列分解して配列逆順。数値B=元数値Bを文字列分解して配列逆順。   ひっさん表列=空。   //かけあわせ   数値Bで反復     B回数=回数。ポケB=対象。ポケAB親=0。     数値Aで反復       A回数=回数。ポケA=対象。ポケAB=ポケA×ポケB+ポケAB親。              ポケAB子=ポケABから1バイト右部分。ポケABから1バイト右端削除。       ポケAB親=ポケAB。もし、ポケAB親=空ならば、ポケAB親=0。       ひっさん表列[(B回数-1),((A回数-1)+(B回数-1))]=ポケAB子。          もし、ポケAB親≠0ならば       ひっさん表列[(B回数-1),((A回数-1+1)+(B回数-1))]=ポケAB親。       //最大でも、9*9=81 なので一桁分でおっけーね!         //縦に足し算   ひっさん結果=空。ポケAB親=0。//←くりあげ要員   (ひっさん表列の表列数)回     ポケAB=ひっさん表列の(回数-1)を表列合計。ポケAB=ポケAB+ポケAB親。     ポケAB子=ポケABから1バイト右部分。ポケABから1バイト右端削除。     ポケAB親=ポケAB。もし、ポケAB親=空ならば、ポケAB親=0。     ひっさん結果=「{ひっさん結果}{ポケAB子}」。   もし、ポケAB親≠0ならば     ポケAB親=ポケAB親を文字列分解して配列逆順して空で配列結合。//左右逆     ひっさん結果=「{ひっさん結果}{ポケAB親}」。   ひっさん結果=ひっさん結果を文字列分解して配列逆順して空で配列結合。   ひっさん結果で戻る。 ---- #comment() ----

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。