QuesTion
の編集
https://www2.hamajima.co.jp:443/~mathenet/wiki/index.php?QuesTion
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
2008(Fractal)2学期
2008(Fractal)3学期
?????©?¢Â???ªÓ
??ªÑ???´???£?¢Â???ª±?¢ð?ªÂ??ª???¢ë????
??ªÑ??ªª??ª???©°??ªª?¡ß??¢î???ª???±???´?¢Â?
??©¬?????¡ß
?ª©??À??©??¢ð?ªÓ?¢ð??±?¢ð??´?ª´??¤?¢ð??¢Â?ª´¡ò?¡ò?ª£?¢Â?ª?
?ªÂ?¢í?ª¤?ªÂ?ª±?¢±?¡Þ
?ª´?¢Ä?ªÀ?ªÀ?¢Ä?©°??ª¡?¢ð?ªÂ?ªÀ??£?ª¤??´(2)
BracketName
DivisionByZero
FrontPage/練習
HyperCard
InterWikiName
InterWikiSandBox
KaleidoCycle
L-system
MenuBar
NETANETAAKASHI
POV-Ray
PukiWiki
RecentDeleted
Rubyで整数の計算
seito
ShortestAdditionChain
TaneAkashi
WikiName
WikiWikiWeb
Xaos
ソーラーボート製作
ノーベルメダルチョコ
;
2007高1生冬課題
4サイクルエンジンの模型
91の不思議
きれいな模様だけど(2)
けいはんなDEサイエンス
だまし缶
なんとかの部屋
イスラエル(星形)
エンジンの構造
ガウス生誕150周年
クアラルンプールの高校の壁画
ケーキの問題
ケプラー関連
サイクロイドの滑り台
シャッフルの記録
シンプルな作図問題
スライスモデル
ビリヤードのパズル
フィボナッチ数列の図形パズル
フラーレン
フラクタル3学期(クライマックス)
ヘルプ
マンデルブロ集合とπ4
ルーロー三角形食器?
Σのパズル
伊号-401
一般公開・科学教室
河崎テスト
階乗のなぞ
角の3等分線
角錐で多面体
関西テクノアイデアコンテスト(高校の部)の模様
京都府高等学校数学研究会
鏡で合わせ絵
行事(仮置き)
作図問題!
初期の落書き
新砂箱
進学環境に科学を伝える取組(紹介本一覧)
数学オリンピック解説会
正多面体さいころ
素数
多面体の硬さ
第2回勉強会
談話室バックナンバー01
中学生の問題(1)
等比数列の続き
統計学習用
二次関数バスケット
日経サイエンス
入れ子トリック
年齢当てマジック
平行・回転・対称移動シート
平成15年度 教員養成大学・学部等教官研究集会
平成16年度京都教育大学公開講座募集
平面図形(4)
平面図形(6)in国立科学博物館
平面図形の問題(1)
平面図形の問題(3)
勉強会(例会と銘打って良いのか?)
方べき
有機化学カードゲーム
有理数の樹
羊歯
立体の問題(1)
立体標識
立方体のパズル
立方体の展開図
...
NetaTaneMenu *質問!情報求む?のコーナー(1) **累乗の計算の回数について 例えば3^7を計算するのに、単純に掛ければ6回の掛け算が必要になりますよね。 3×3×3×3×3×3×3 でも、実際には 3×3=9 9×9=81 81×3=243 243×3=729 という具合に計算するわけですから、4回の掛け算で済みます。 質問その1、7乗を掛け算だけで計算するのに掛け算は4回「必要」か? (掛け算3回で8乗を計算してから3で「割る」なんてのは無しです。) 質問その2、n乗するときに必要な掛け算の回数を求める関数?プログラム?アルゴリズム?あるいは表?・・・を教えて下さい。 (2003.7.30.むらい) COLOR(#006789){この問題をみると,昔のプログラミングの心得で,演算の回数をいかに減らすかに気を使ったことを思い出しますね。3^7のケースで4回というのは,他のやりかたもあるけれど,いずれにしても最小回数であるようです。一般の場合に拡張した場合の答えは,整数をn進法で表現することと何か関係がありそうな。} COLOR(#fe891c){そうなんですよね。ネット上をいろいろと探すのですが、2進法でとりあえず減らしたからまあ好いやって言うのが殆ど。[[数列百科事典:http://www.research.att.com/~njas/sequences/indexjapanese.html]]でさえ役に立ちませんでした。33乗なんかは面白くて3x11で考えるより素直に2^5+1で考えるほうが少ない回数で計算できるのです。さてさて、どういうアルゴリズムが良いのでしょう。ほとほと困っているのですが、まあ楽しんでいます。でも分かった・分かっている人はもったいぶらずに教えてください。あと万が一「それは分かっていないことなんだ」ってことが分かっている場合も、、、} COLOR(#006789){考えれば考えるほど、って大して時間をかけてはいないのですが・・・一般解のわからない問題に見えてきますねね。箱の中に球を何個詰め込めるかというタイプの問題とよく似ている。時間をとって数十までの範囲の解をとりあえず出してみたいのですが、村井さんはどこまでやってますか?} COLOR(#fe891c){やっぱり家の環境では書き込めなくて報告遅れました。十進ベーシックで総当たり的なプログラムを書いてみました。メモリの関係で70ぐらいまでしか検証できていません。現在はpythonかLisp(schame)あるいはrubyでなんとかならんかなあと「思って」いる次第です。どうやら結構難しいことらしく、Knuthさんのart of programing(うろ覚え)の第三巻に記述があるようです。ご存じ・所持されている方は詳細を教えてください。} COLOR(#fe891c){それから[[数列百科事典:http://www.research.att.com/~njas/sequences/indexjapanese.html]]が役に立たなかったと書きましたが、嘘でした。ちゃんとありました。} COLOR(#fe891c){ついでですから、途中までの[[表>ShortestAdditionChain]]です。} COLOR(#006789){さすが!やってますねえ。ちょっと興味を持ったのは,解の数の分布についてです。たとえば,9のケースでは解は2通りあり,どっちがよりよいというわけではない。ただし,途中に現れる数値の種類も含めると優劣を付けられる場合もあるでしょう。そういう問題を含めて,最良解から最悪解?まで何個ずつあるのか。} COLOR(#006789){Ruby はAI的な言語ではないので,LISP とはセンスがちがいます。もっとも Ruby は多倍長整数がらくらくと扱えて 100!なんて屁でもないとか,eval という強力な関数があって式そのものを文字列としても実行文としても扱えるので,この種のプログラムを書くには便利でしょう。クラスも使えるし。ぜひこの機会に習得を。 この[[ルビー電卓:http://www.cs.kyoto-wu.ac.jp/~konami/cgi/calc.cgi]]も,それを生かして作ってあります。たとえば下の式をコピー&ペーストして実行してみてください。上の9のケースの計算のようすです。式の中の変数の種類とか '*' の数が答になっています。} a0 = 3; n = 9; a0 ^ n ~ sprintf("--------") ~ a1 = a0 * a0; a11 = a1 * a1; a11 * a11 * a0 ~ sprintf("-------") ~ a2 = a0 * a0 * a0; a2 * a2 * a2 ~ ---- COLOR(#fe891c){さあて、Rubyは最適なプログラム?を意識しなければとってもお気楽な言語ですね。ちょっとプログラムを書いて動かしてみました。LISPとは確かにその言語の作り方?動作原理?のセンスは違いますが、リストや連想配列などLISPを齧った事がある程度の僕には、こりゃあ楽だって思いました。そのあたりは駱駝でもPealとは違うなって感じですね。というわけで、少し長いですがプログラムとその結果です。} COLOR(#fe891c){Rubyistな方は添削してみてください。再帰が効くので、Squeakでも面白いかもしれない。smalltalkが好きだった僕としてはあのインターフェイスがどうにもなじめないのでパスしているのですけど。} # The Shortest Addition Chain List Program tsacl=[[1]] newcl=[] numl=[1] ll=[[1]] dcl=tsacl k=0 while k<16 <<<===ここはお好みの自然数を。ちなみに学校のPCでは11で詰まってました。 k=k+1 newnuml=[] for c in dcl t=c[-1] for x in c na=t+x if not numl.include?(na) then newc=c+[na] newcl=newcl+[newc] if not newnuml.include?(na) then newnuml=newnuml+[na] end end end end print "." tsacl=tsacl+newcl ll=ll+[newnuml] numl=numl+newnuml dcl=newcl newcl=[] end print "\n" p numl for l in ll p l end 総当りのプログラムです。 tsaclはTheShortestAdditionChainのListです。 「最適」なものだけですが、複数あればすべて入ります。結果はShortestAdditionChainに
タイムスタンプを変更しない
NetaTaneMenu *質問!情報求む?のコーナー(1) **累乗の計算の回数について 例えば3^7を計算するのに、単純に掛ければ6回の掛け算が必要になりますよね。 3×3×3×3×3×3×3 でも、実際には 3×3=9 9×9=81 81×3=243 243×3=729 という具合に計算するわけですから、4回の掛け算で済みます。 質問その1、7乗を掛け算だけで計算するのに掛け算は4回「必要」か? (掛け算3回で8乗を計算してから3で「割る」なんてのは無しです。) 質問その2、n乗するときに必要な掛け算の回数を求める関数?プログラム?アルゴリズム?あるいは表?・・・を教えて下さい。 (2003.7.30.むらい) COLOR(#006789){この問題をみると,昔のプログラミングの心得で,演算の回数をいかに減らすかに気を使ったことを思い出しますね。3^7のケースで4回というのは,他のやりかたもあるけれど,いずれにしても最小回数であるようです。一般の場合に拡張した場合の答えは,整数をn進法で表現することと何か関係がありそうな。} COLOR(#fe891c){そうなんですよね。ネット上をいろいろと探すのですが、2進法でとりあえず減らしたからまあ好いやって言うのが殆ど。[[数列百科事典:http://www.research.att.com/~njas/sequences/indexjapanese.html]]でさえ役に立ちませんでした。33乗なんかは面白くて3x11で考えるより素直に2^5+1で考えるほうが少ない回数で計算できるのです。さてさて、どういうアルゴリズムが良いのでしょう。ほとほと困っているのですが、まあ楽しんでいます。でも分かった・分かっている人はもったいぶらずに教えてください。あと万が一「それは分かっていないことなんだ」ってことが分かっている場合も、、、} COLOR(#006789){考えれば考えるほど、って大して時間をかけてはいないのですが・・・一般解のわからない問題に見えてきますねね。箱の中に球を何個詰め込めるかというタイプの問題とよく似ている。時間をとって数十までの範囲の解をとりあえず出してみたいのですが、村井さんはどこまでやってますか?} COLOR(#fe891c){やっぱり家の環境では書き込めなくて報告遅れました。十進ベーシックで総当たり的なプログラムを書いてみました。メモリの関係で70ぐらいまでしか検証できていません。現在はpythonかLisp(schame)あるいはrubyでなんとかならんかなあと「思って」いる次第です。どうやら結構難しいことらしく、Knuthさんのart of programing(うろ覚え)の第三巻に記述があるようです。ご存じ・所持されている方は詳細を教えてください。} COLOR(#fe891c){それから[[数列百科事典:http://www.research.att.com/~njas/sequences/indexjapanese.html]]が役に立たなかったと書きましたが、嘘でした。ちゃんとありました。} COLOR(#fe891c){ついでですから、途中までの[[表>ShortestAdditionChain]]です。} COLOR(#006789){さすが!やってますねえ。ちょっと興味を持ったのは,解の数の分布についてです。たとえば,9のケースでは解は2通りあり,どっちがよりよいというわけではない。ただし,途中に現れる数値の種類も含めると優劣を付けられる場合もあるでしょう。そういう問題を含めて,最良解から最悪解?まで何個ずつあるのか。} COLOR(#006789){Ruby はAI的な言語ではないので,LISP とはセンスがちがいます。もっとも Ruby は多倍長整数がらくらくと扱えて 100!なんて屁でもないとか,eval という強力な関数があって式そのものを文字列としても実行文としても扱えるので,この種のプログラムを書くには便利でしょう。クラスも使えるし。ぜひこの機会に習得を。 この[[ルビー電卓:http://www.cs.kyoto-wu.ac.jp/~konami/cgi/calc.cgi]]も,それを生かして作ってあります。たとえば下の式をコピー&ペーストして実行してみてください。上の9のケースの計算のようすです。式の中の変数の種類とか '*' の数が答になっています。} a0 = 3; n = 9; a0 ^ n ~ sprintf("--------") ~ a1 = a0 * a0; a11 = a1 * a1; a11 * a11 * a0 ~ sprintf("-------") ~ a2 = a0 * a0 * a0; a2 * a2 * a2 ~ ---- COLOR(#fe891c){さあて、Rubyは最適なプログラム?を意識しなければとってもお気楽な言語ですね。ちょっとプログラムを書いて動かしてみました。LISPとは確かにその言語の作り方?動作原理?のセンスは違いますが、リストや連想配列などLISPを齧った事がある程度の僕には、こりゃあ楽だって思いました。そのあたりは駱駝でもPealとは違うなって感じですね。というわけで、少し長いですがプログラムとその結果です。} COLOR(#fe891c){Rubyistな方は添削してみてください。再帰が効くので、Squeakでも面白いかもしれない。smalltalkが好きだった僕としてはあのインターフェイスがどうにもなじめないのでパスしているのですけど。} # The Shortest Addition Chain List Program tsacl=[[1]] newcl=[] numl=[1] ll=[[1]] dcl=tsacl k=0 while k<16 <<<===ここはお好みの自然数を。ちなみに学校のPCでは11で詰まってました。 k=k+1 newnuml=[] for c in dcl t=c[-1] for x in c na=t+x if not numl.include?(na) then newc=c+[na] newcl=newcl+[newc] if not newnuml.include?(na) then newnuml=newnuml+[na] end end end end print "." tsacl=tsacl+newcl ll=ll+[newnuml] numl=numl+newnuml dcl=newcl newcl=[] end print "\n" p numl for l in ll p l end 総当りのプログラムです。 tsaclはTheShortestAdditionChainのListです。 「最適」なものだけですが、複数あればすべて入ります。結果はShortestAdditionChainに
テキスト整形のルールを表示する