← 前のページ | 1 | 16 17 18 19 20 21 22 23 24 25 26 | 28 | 次のページ →

1283. ぬー!! MZL 2002 年 12 月 3 日 (火) 11:09

M.Kamada 様こんにちは。

先日過去のデータを漁っていたときに見つけたのですが

X68OOO Noo!!

で始まる形式のファイルのデコーダってご存知無いでしょうか?

1284. Re: ぬー!! M.Kamada 2002 年 12 月 3 日 (火) 13:42

MZL さん、こんにちは。

> X68OOO Noo!!

> で始まる形式のファイルのデコーダってご存知無いでしょうか?

わかりませんです。わかる方はフォローをお願いします。

拡張子や中身の種類(画像とか)がわかるともう少し探しやすいと思います。

1285. MZL 2002 年 12 月 3 日 (火) 18:08

>>1

MZL です。

> 拡張子や中身の種類(画像とか)がわかるともう少し探しやすいと思います。

どうやらテキストファイルを圧縮または暗号化したもののようで

中身はちらほらと元のテキストと思しきパーツがちりばめられています。

ちなみに拡張子は .doc でした (意味無いじゃん)。


1273. 素因数分解の使い道 (昇) 2002 年 11 月 19 日 (火) 21:08

日記のほうで『プロテクト技術解剖学』をピックアップいただきありがとうございます.

最近盛り上がっているいる素因数分解は公開鍵暗号のキーテクノロジ(?)でもあるので、ほほほぉ、などと眺めております.それにしても、アルゴリズムもさることながら、最近はパソコンレベルでもここまで演算ができるのかと…。などと感心してしまいます.

1276. Re: 素因数分解の使い道 M.Kamada 2002 年 11 月 20 日 (水) 14:08

(昇)さん、こんにちは。

> 日記のほうで『プロテクト技術解剖学』をピックアップいただきありがとうございます.

どういたしまして。

実はまだ現物を見ていないのですが、

手に入ったらまた何か書きますね。

> 最近盛り上がっているいる素因数分解は公開鍵暗号のキーテクノロジ(?)でもあるので、ほほほぉ、などと眺めております.

あ、私のは単なる趣味ですので。

> それにしても、アルゴリズムもさることながら、最近はパソコンレベルでもここまで演算ができるのかと…。などと感心してしまいます.

パソコンレベルでも、というよりも、この手の演算は

パソコンでやるほうが主流になっているように思います。

CPU を遊ばせておくのももったいないですし。


1260. 2 つの系列 哲 2002 年 11 月 12 日 (火) 00:05

こんばんは。

(64*10^n+53)/9 型の素数は見つからないのに、(16*10^n-61)/9 型の素数は沢山 (?) ありますね。

ちょっと調べたら、n=1, 6, 48, 102, 192, 366, 1002 の時に多分素数になるようです。

それでは失礼します。

1261. Re: 2 つの系列 M.Kamada 2002 年 11 月 12 日 (火) 16:55

哲さん、こんにちは。

> (64*10^n+53)/9 型の素数は見つからないのに、(16*10^n-61)/9 型の素数は沢山 (?) ありますね。

理由がこれだけかどうかわかりませんが、

代数的に考えると個々の素因数の出現頻度は限られており、

(16*10^n-61)/9 のほうが小さい素因数が同じ数に集中して

現れるので素数が多くなるのではないかと思います。


1257. 素因数分解 哲 2002 年 11 月 10 日 (日) 20:44

こんばんは。

系列の表が公開されたということで、早速その中から 1 つ拾って分解しました。

(64*10^100+53)/9/83/239 =

67838213495270775000029029252126840673<38> *

52842951754093581599808028211530416669511326155578778996017<59>

それでは失礼します。

1259. Re: 素因数分解 M.Kamada 2002 年 11 月 10 日 (日) 22:00

哲さん、こんばんは。

> 系列の表が公開されたということで、早速その中から 1 つ拾って分解しました。

すばやひ。(^^;

> (64*10^100+53)/9/83/239 =

> 67838213495270775000029029252126840673<38> *

> 52842951754093581599808028211530416669511326155578778996017<59>

あらら、97 桁もあったのにあっさりと…

ありがとうございます。検証の上、リストを更新しました。

1262. 哲 2002 年 11 月 13 日 (水) 16:39

>>1

こんにちは。

今回は 2 つの系列から 1 つずつ拾って分解しました。

(16*10^84-61)/9 =

756600723901820421121949766505399991678987<42> *

2349690823198933964135445765680242530617633<43>

(64*10^110+53)/9/3 =

2893127983106535322296101126866226743812761611968656413<55> *

81931058156132903212222953108519541156199436710593940603<56>

それでは失礼します。

1263. M.Kamada 2002 年 11 月 13 日 (水) 19:56

>>2

哲さん、こんにちは。

> 今回は 2 つの系列から 1 つずつ拾って分解しました。

ありがとうございます。

ますますデッカイのが出てますねー。(^^;

1264. 哲 2002 年 11 月 14 日 (木) 21:26

>>3

こんばんは。

今回は素因数分解しようとして見事に失敗したものを含みます。

(64*10^98+53)/9/3/317263 =

2710065611669718533001316546342690787137<40> *

275687438249130740149164966821108918202785098309543969<54>

(64*10^103+53)/9/7/11/3467/1792366084603<13> =

148616209456908826177190395908183710155106110849893738382084866292756631938052581292921<87>

下の p87 は表では合成数ということになっていますが、mpqs4linux が最大公約数を求めるフェーズで何故かコケるので APRT-CLE で判定したら素数でした。

さらに (64*10^n+53)/9 の系列で n=105, 106, 109, 132, 134, 142, 167, 199 で合成数となっている数も APRT-CLE で素数と判定されました。乞確認。

それでは失礼します。

1265. M.Kamada 2002 年 11 月 14 日 (木) 23:03

>>4

哲さん、こんばんは。

> 下の p87 は表では合成数ということになっていますが、mpqs4linux が最大公約数を求めるフェーズで何故かコケるので APRT-CLE で判定したら素数でした。

> さらに (64*10^n+53)/9 の系列で n=105, 106, 109, 132, 134, 142, 167, 199 で合成数となっている数も APRT-CLE で素数と判定されました。乞確認。

あらら、こんなにたくさん。ありがとうございます。

最初に小さい素因数を排除した段階で残りを一旦合成数と仮定して

作業を始めたので、その名残だと思います。

リストは手作業で更新しているので他にも間違いがあるかも知れません。

1266. Y. Hanatani 2002 年 11 月 16 日 (土) 18:16

>>5

こんにちは

こちらで最近素因数分解が取り上げられているのを見て、

ecm-gmp をインストールしてみましたところ、

(64*10^117+53)/9 mod 89875493496406619338541 == 0 なる

23 桁の素因数が見つかりました。

1267. 哲 2002 年 11 月 16 日 (土) 19:34

>>6

こんばんは。

ついでに下記の結果も加えておいてください。

[171]

(16*10^91-61)/9/11/23/23 =

12876290977178756970996047<26> *

237267543416547860781980234475213396141517058226065266888729247<63>

(16*10^100-61)/9/13 =

55286350879878282337818061874857<32> *

24735243794487494621487788772935861198378042673830517244659559794431<68>

(16*10^129-61)/9/7/11/11/439/9587423/11862063049<11> =

162703661782563931426151<24> *

258386666102291034681870637469344303139728717957217645153666455373251731432264075331<84>

[717]

(64*10^104+53)/9/3/3/3025111 =

4646127361478373336901817104339<31> *

5621633514033298730270232373228771572697404804559738813992009234097<67>

(64*10^135+53)/9/11/239 =

583354276368348239613413747<27> *

4636758668504360385753236819635365522974407369310460020199753070369153703602153265078023555368000115985459<106>

それでは失礼します。

1268. M.Kamada 2002 年 11 月 16 日 (土) 19:48

>>6

Y. Hanatani さん、こんにちは。

> こちらで最近素因数分解が取り上げられているのを見て、

> ecm-gmp をインストールしてみましたところ、

> (64*10^117+53)/9 mod 89875493496406619338541 == 0 なる

> 23 桁の素因数が見つかりました。

ありがとうございます。

小さい素因数が残り少なくなるにつれて、

GMP-ECM でも素因数がなかなか見つからなくなってきました。

未知の素因数を最初に発見した人はちょこっとラッキー。(^^;

1269. M.Kamada 2002 年 11 月 16 日 (土) 20:08

>>7

哲さん、こんばんは。

> ついでに下記の結果も加えておいてください。

いつもありがとうございます。

1270. Y. Hanatani 2002 年 11 月 18 日 (月) 13:48

>>9

(16*10^207-61)/9 の素因数のひとつ

9048304351615529959999 (22digits) を見つけました。

残りの因子は合成数のようです。

20 桁代はもう残ってないのではないかと思っていましたが…

夜な夜な ecm を回していた甲斐がありました。

1271. M.Kamada 2002 年 11 月 18 日 (月) 21:38

>>10

Y. Hanatani さん、こんにちは。

> (16*10^207-61)/9 の素因数のひとつ

> 9048304351615529959999 (22digits) を見つけました。

ありがとうございます。

> 残りの因子は合成数のようです。

> 20 桁代はもう残ってないのではないかと思っていましたが…

> 夜な夜な ecm を回していた甲斐がありました。

20 桁台の前半はそろそろなくなってもいい頃だと思うのですが、

ECM は気まぐれなので、またひょっこり出てくるかも知れませんね。

1272. Y. Hanatani 2002 年 11 月 19 日 (火) 20:51

>>11

幾つか素因数が見つかったので報告します。

(16*10^139-61)/9 = 11 * 601 * 5653 * 11721571 * 173908413895577<15> * 41905101224716768849<20> *

7123909525202177297570459<25> * <66>

(64*10^130+53)/9 = 11 * 67 * 4813 * 1050713 * 3036571 * 5699496121811<13> * 720671207366725631<18> *

829988483908342604237133093299<30> * <79>

(16*10^144-61)/9 = 189467 * 1083923 * 121013687 * 754174919 * 3979082437789453<16> *

106945245805206203945351953<27> * <75>

(64*10^227+53)/9 = 3 * 11 * 2692643 * 32148341487588916037785781<26> *

181503117655874306714926957<27> * <169>

(16*10^238-61)/9 = 13 * 127 * 5657 *

46430180224264648553519<23> * <209>

(16*10^250-61)/9 = 13 * 1117 * 3001 * 68960274559011859<17> *

105187359738922024391561<24> * <203>

(16*10^161-61)/9 = 3 * 11 * 223 * 293 * 241667 * 347838697 * 463516751 * 9405191432179<13> *

118572847683009651860426161<27> * <94>

1274. 哲 2002 年 11 月 19 日 (火) 22:12

>>12

こんばんは。分解結果を 1 つ。

by mpqs4linux 0.61

(64*10^118+53)/9/17/71/179/877/15546722392914624145433<23> =

36804824607493699624427683931388558688781429<44>

655894476999064437055701414186258862934394001<45>

ご存知とは思いますが、このタイプの数には特殊数体篩法 (SNFS) が適用できます。

ECM で新たな素因数が見つからなくて残りの合成数が大きい場合に有効でしょう。

実装の在処にはこのサイトからリンクが張られているのであえて書きませんが。

おそらく公開されていて素人にも簡単手軽に使える世界最速の実装でしょう。

使える多項式が 5 次式のみという縛りがありますが、この 2 つの系列の数なら多項式の係数が 3e3 を超えることはないはずです。

ということで、n<=130 程度の完全分解は現実的です。頑張ってください。

それでは失礼します。

1275. M.Kamada 2002 年 11 月 19 日 (火) 22:26

>>12

Y. Hanatani さん、こんばんは。

> 幾つか素因数が見つかったので報告します。

うわ。これはまたゾロゾロと…ありがとうございます。

1277. Y.Hanatani 2002 年 11 月 23 日 (勤労感謝の日) 20:27

>>13

数体ふるい法はまだ理解できていないところがあって、

代数の本なんかを引っ張りださないと、という感じです。

PowerPC や SPARC 上で動く二次ふるい法や数体ふるい法のプログラムがあればよいのですが、

今のところそれらの存在を知らないので楕円曲線法のみで分解しています。

あまり掲示板に素因数ばかり載せるのもどうかと思いますので、

今後は大きなの (30 桁以上) が見つかったときだけ、書き込みます。

(16*10^146-61)/9 = 3 * 3 * 19 * 146890314509<12> * 1275008940157<13> * 13203685413461<14> * 1535375128727451317<19> * 1436014684780513730348145587<28> * <63>

(16*10^151-61)/9 = 11 * 11 * 29 * 29 * 1639052759<10> * 127259957021<12> * 4691097589091<13> * 8845358547510784479949<22> * [<92>]

(16*10^238-61)/9 = 13 * 127 * 5657 * 46430180224264648553519<23> * 254357642020012614687158935739<30> * [<180>]

(64*10^148+53)/9 = 19 * 29 * 739 * 1396523 * 1479913 * 51349048391867140770561613<26> * [<106>]

(64*10^157+53)/9 = 7 * 11 * 31 * 2309 * 5755989064165303169309<22> * 3983829526435379614386593<25> * 469074176045951899217<21> * <85>

(64*10^181+53)/9 = 7 * 7 * 11 * 11 * 1459 * 8293 * 19157 * 21870259553<11> * 57593571329269832561664997067<29> * <128>

(64*10^192+53)/9 = 13 * 88883 * 5941609 * 1191008658284365721903<22> * <159>

(64*10^200+53)/9 = 3 * 197 * 409 * 268480211 *571928806571317915240679<24> * [<164>]

(64*10^234+53)/9 = 13 * 1181 * 7451 * 1471598307214747<16> * 3052073285905649<16> * 172548225862787861<18> * 2699321912890730492306803<25> * [<155>]

1278. M.Kamada 2002 年 11 月 23 日 (勤労感謝の日) 22:55

>>15

Y.Hanatani さん、こんにちは。

> 数体ふるい法はまだ理解できていないところがあって、

> 代数の本なんかを引っ張りださないと、という感じです。

あぅぅ、私は大学のノートを引っ張り出しても未だに…。

円周率の計算もそうなのですが、自分が理解できていない

アルゴリズムで計算するよりもちゃんと理解してから使った

ほうが結果が出たときの感動が大きいと思うので、なんとか

理解したいのですが…。

> あまり掲示板に素因数ばかり載せるのもどうかと思いますので、

> 今後は大きなの (30 桁以上) が見つかったときだけ、書き込みます。

お気遣いありがとうございます。

分解結果のご報告はメールでも OK です。

最終的にリストに反映されることに変わりありませんので。

1279. 哲 2002 年 11 月 28 日 (木) 12:07

>>16

こんにちは。1 つ。

(16*10^103-61)/9/11/337/244021 =

591000852246729578096482950405701019799<39> *

33253669605348907854656824307226049743772768002763036507<56>

それでは失礼します。

1280. M.Kamada 2002 年 11 月 28 日 (木) 14:45

>>17

哲さん、こんにちは。

> (16*10^103-61)/9/11/337/244021 =

> 591000852246729578096482950405701019799<39> *

> 33253669605348907854656824307226049743772768002763036507<56>

ありがとうございます。

現在、(16*10^1002-61)/9 の素数判定を実行中。

1281. 哲 2002 年 11 月 30 日 (土) 14:59

>>18

こんにちは。1 つ。

(64*10^119+53)/9/3/11/89/1601/30859/348406813/1681642841<10> =

2376617737536393653702961258394523<34> *

3519497020374748402221295454823938291008096271084547330361<58>

1003 桁の素数判定が APRTCLE で 7 日ですか。意外と速いという印象です。

それでは失礼します。

1282. M.Kamada 2002 年 11 月 30 日 (土) 17:34

>>19

哲さん、こんにちは。

> 1 つ。

いつもありがとうございます。

> 1003 桁の素数判定が APRTCLE で 7 日ですか。意外と速いという印象です。

そうですね。1000 桁を越える数を試したのは初めてだったので

何日かかるか予測せずに始めてしまったのですが、このくらいの

期間で終わってよかったです。

1 日目の夕方始めて 7 日目の朝終わっていたので実質 6 日弱でした。

単独で走らせればもう少し早く終わったと思います。


1256. はじめまして Furutaka 2002 年 11 月 9 日 (土) 22:52

はじめまして。

元電くら読者なので、なんだか懐かしい気がします ^^

X68 も先日 EXPERT の電源が故障し何とか直しましたが、もう 10 年

ものなんですね・・・SASI の HDD に不良フラスタ1つないのは

奇跡なのかも。

ところで X68-WIN 間のファイルやり取りですが、ロングファイル名も

小文字も大丈夫ですが、ファイル名の 8Byte 目に全角文字の先頭 Byte

がくると Win では全く認識できないようです。このおかげで MO の

データ移行が面倒でなりません ^^;

1258. Re: はじめまして M.Kamada 2002 年 11 月 10 日 (日) 21:56

Furutaka さん、こんにちは。

> X68 も先日 EXPERT の電源が故障し何とか直しましたが、もう 10 年

> ものなんですね・・・SASI の HDD に不良クラスタ1つないのは

> 奇跡なのかも。

奇跡かも。

SASI のハードディスクが動いているというだけでも

驚く人は多いと思います。

> ところで X68-WIN 間のファイルやり取りですが、ロングファイル名も

> 小文字も大丈夫ですが、ファイル名の 8Byte 目に全角文字の先頭 Byte

> がくると Win では全く認識できないようです。このおかげで MO の

> データ移行が面倒でなりません ^^;

その手の落とし穴ってありますよね。

リネームするにしてもアーカイブしなおすにしても結局

X68k 側で手を加えなければならないので面倒だと思います。


1252. こんばんは、初めまして 哲 2002 年 11 月 4 日 (振替休日) 23:58

とある人の名前を検索にかけたところこのページにたどり着きました。これから宜しくお願いします。

2002 年 10 月 22 日の虫食い算の解答プログラムを書いてみましたが、PentiumIII の 866MHz で 5 秒かかるので落第です。しかし折角なので公開します。

http://hyper6.amuser-net.ne.jp/~hamayan/20021022.ub

積の候補 90 個についてそれぞれ素因数分解を施す手法です。解答は 81766*78517(=6420021022) と出ました。

2002 年 10 月 13 日の 137 桁の数の素因数分解についてですが、この数は 7174189082561 という素因数を持ちますので、これを除いた 124 桁の数の素因数分解を行えば良いことになります。が、現在 PPMPQS 法ではない手法で計算機に分解させているところです。結果は 10 日~2 週間後に出る予定 (停電などがなければ) です。結果が出たら詳細を報告しますので、お楽しみに。

それでは失礼します。

1253. Re: こんばんは、初めまして M.Kamada 2002 年 11 月 5 日 (火) 01:12

哲さん、こんにちは。はじめまして。

> とある人の名前を検索にかけたところこのページにたどり着きました。これから宜しくお願いします。

こちらこそ、よろしくお願いします。

誰の名前かな…?

> 2002 年 10 月 22 日の虫食い算の解答プログラムを書いてみましたが、PentiumIII の 866MHz で 5 秒かかるので落第です。しかし折角なので公開します。

> http://hyper6.amuser-net.ne.jp/~hamayan/20021022.ub

> 積の候補 90 個についてそれぞれ素因数分解を施す手法です。解答は 81766*78517(=6420021022) と出ました。

正解です。

積を先に決めておいて素因数分解するというのは面白い手法だと

思います。

問題の桁数がもっと多くなると効果があるかも知れませんね。

この問題の場合は桁数がさほど多くなく、積の下位の数字が

わかっているので、乗数の候補を下位の数字から順に弾いてゆけば

少ないループ回数で解くことができます。

> 2002 年 10 月 13 日の 137 桁の数の素因数分解についてですが、この数は 7174189082561 という素因数を持ちますので、これを除いた 124 桁の数の素因数分解を行えば良いことになります。が、現在 PPMPQS 法ではない手法で計算機に分解させているところです。結果は 10 日~2 週間後に出る予定 (停電などがなければ) です。結果が出たら詳細を報告しますので、お楽しみに。

わぉ。13 桁の数で割り切れることを確認しました。

そして残った 124 桁の数は合成数。うーむ。

結果を楽しみにしております。

効率のよい素因数分解プログラムがありましたら是非教えてください。

1254. 哲 2002 年 11 月 6 日 (水) 21:31

>>1

こんばんは。局所的ですがリプライします。

> 効率のよい素因数分解プログラムがありましたら是非教えてください。

PPMPQS 法の実装として、mpqs4linux というプログラムがあります。下記の場所から入手できます。

ftp://ftp.math.uni-bonn.de/people/franke/mpqs4linux/mpqs4linux-0.61.tgz

名前の通りで、どうやら Linux 上でしか動かないみたいです。Cygwin で make しようとして失敗しました。もし Cygwin で動かすことができたらその方法を是非教えてください。

ですが、おそらく一般公開されている PPMPQS 法の実装としては世界最速でしょう。AthlonXP の 1700+ を 1 台だけ使って 110 桁の数を 5 日で分解することができました。

PPMPQS 法は素因数分解しようとする合成数の大きさによって凡その計算所要時間が決まりますが、見つけようとする素因数の大きさによって所要時間の決まる手法もあります。

そのタイプのアルゴリズムで現在最も効率が良いとされているのが ECM です。これの実装として、GMP-ECM というプログラムがあります。下記の場所から入手できます。

http://www.loria.fr/~zimmerma/records/ecmnet.html

これも一般公開された実装で世界最速でしょう。35 桁程度までの素因数ならば速いパソコンで 24 時間ほど動かせば大抵見つかるとされています。

実はこのプログラムが (64*10^136+53)/9 (=c137) の 13 桁の素因数 (p13) を見つけてくれました。もっとも

p13 - 1 = 2 * 2 * 2 * 2 * 2 * 2 * 5 * 307 * 1531 * 47699

なのでこの素因数なら p-1 法でも見つけてくれそうですが。

なお、ECM であまり実験せずに c124(=c137/p13) を別プログラムにかけたものですから、今から GMP-ECM に c124 をかければそのプログラムの計算が終了する前に新たな素因数が見つかる可能性があります。

ちなみに現在最も効率が良いとされている素因数分解アルゴリズムはこの中に記載されていません。それについてはまたの機会にすることにします。

それでは失礼します。

1255. M.Kamada 2002 年 11 月 7 日 (木) 01:29

>>2

哲さん、こんにちは。

プログラムのご紹介をありがとうございます。

> PPMPQS 法の実装として、mpqs4linux というプログラムがあります。下記の場所から入手できます。

> ftp://ftp.math.uni-bonn.de/people/franke/mpqs4linux/mpqs4linux-0.61.tgz

これは知りませんでした。

> 名前の通りで、どうやら Linux 上でしか動かないみたいです。Cygwin で make しようとして失敗しました。もし Cygwin で動かすことができたらその方法を是非教えてください。

gasp を呼び出すところでつっかえました。

うちの Cygwin には gasp が入っていないようです。何故かな…

動いたらご報告します。

> そのタイプのアルゴリズムで現在最も効率が良いとされているのが ECM です。これの実装として、GMP-ECM というプログラムがあります。下記の場所から入手できます。

> http://www.loria.fr/~zimmerma/records/ecmnet.html

これは以前ダウンロードだけしてまだ試していませんでした。

> 実はこのプログラムが (64*10^136+53)/9 (=c137) の 13 桁の素因数 (p13) を見つけてくれました。

さっそく試してみたところ、p13 が 14 秒くらいで見つかりました。

これは速いかも。

ECM のパラメータの決め方を研究しなければ…。


1250. JavaScript Fukai 2002 年 10 月 30 日 (水) 23:38

たしかに酷いっす。>JAVAスクリプト

基本的に全角アルファベットはあんまり好みじゃないです。まあ好みの問題ですが。

ちなみに JavaScript は「Java が由来のスクリプト言語」ではなかったはずです。

C++ を参考に作ったスクリプト言語で、最初の名前は LiveScript だったと聞いたことがあります。

そんで Java が世の中に出るのと同じ頃だったのと、C++ を参考にしている点で Java と一緒なので (?)、

便乗して JavaScript という名前を付けたんだったような。

正確かどうかあやしいですが、大筋はあってるはずです。

1251. Re: JavaScript M.Kamada 2002 年 10 月 31 日 (木) 01:09

Fukai さん、こんにちは。

> ちなみに JavaScript は「Java が由来のスクリプト言語」ではなかったはずです。

あぅ、一語抜けていました。

「一応 Java が名前の由来のスクリプト言語」です。

ご指摘ありがとうございます。

http://e-words.jp/w/JavaScript.html

ここの「Java 言語をベースに…」という記述もどうかと…。


1247. なんかとても懐かしい はんかつ 2002 年 10 月 23 日 (水) 20:44

シャープがガラス基板の上にZ80を作ったそうです。

http://pcweb.mycom.co.jp/news/2002/10/22/09.html

1248. Re: なんかとても懐かしい M.Kamada 2002 年 10 月 24 日 (木) 00:49

はんかつさん、こんにちは。

> シャープがガラス基板の上にZ80を作ったそうです。

> http://pcweb.mycom.co.jp/news/2002/10/22/09.html

あちこちで話題になっていますね。

本当に動いているのだということを示すために MZ-80C を実際に

動かして見せたというところが素晴らしいと思います。

見た目はレトロでも中身は最先端。

ふと、大学の学園祭を思い出してしまいました。

1249. 高橋 2002 年 10 月 24 日 (木) 22:03

>>1

> シャープがガラス基板の上にZ80を作ったそうです。

なんというか、ロマンのようなものを感じます。いい話だぁ~。

> 本当に動いているのだということを示すために MZ-80C を実際に

> 動かして見せたというところが素晴らしいと思います。

確かに。ただ展示するだけじゃなくて、そこでゲーム動かしてみせるってのはステキですね。


1243. いまだに「ふ」リーズ・・・・ すけ 2002 年 10 月 16 日 (水) 12:25

> いきなり数秒も動くのは凄いような。

> がんばってレリーズしてください。

モニタソフトは CQ の「作りながら学ぶ 68000」から パックンして

RS-232 は、「OH!MZ 87/5」の記事をそのままパックンして

自分で書いた回路は アドレスデコーダと /TA 遅延くらいですから

ほんとは、即・動作! っていきたいところですが…

しっかり、「フ」リーズ しております。

「レ」リーズするのは…いつになることやら…


1240. 最適化について ゆうき喬史 2002 年 10 月 15 日 (火) 17:38

僕が VC++6 での最適化を諦めた理由

(CPU セレロン 650MHz)

static int foo(char *p)

{

char *q;

q = p;

if ( *q++ != '{' ) {

return -1;

}

while ( 1 ) {

if ( *q == '\0' ) {

return -1;

}

if ( *q++ == '}' ) {

if ( *q != '}' ) {

break;

}

}

}

return q - p;

}

static int goo(char *p)

{

char *q;

q = p + 1;

while ( 1 ) {

if ( *q == '\0' ) {

return -1;

}

if ( *q++ == '}' ) {

if ( *q != '}' ) {

break;

}

}

}

return q - p;

}

int main(void)

{

int i;

char *p;

p = "{123456789012345678901234567890}";

for ( i = 0; i < 1000000; i++ ) {

foo( p );

goo( p );

}

return 0;

}

関数 ヒット

時間 % カウント 関数

----------------------------------------------

396.412 29.0 1000000 _foo (tst_test.obj)

494.316 36.2 1000000 _goo (tst_test.obj)

1241. Re: 最適化について M.Kamada 2002 年 10 月 15 日 (火) 19:48

ゆうき喬史さん、こんにちは。

> 396.412 29.0 1000000 _foo (tst_test.obj)

> 494.316 36.2 1000000 _goo (tst_test.obj)

処理が少ない関数のほうが時間がかかっているということでしょうか。

どんなコードになっているのか見てみたいです。

1242. ゆうき喬史 2002 年 10 月 16 日 (水) 08:02

>>1

鎌田さん、こんにちは。

> > 396.412 29.0 1000000 _foo (tst_test.obj)

> > 494.316 36.2 1000000 _goo (tst_test.obj)

>

> 処理が少ない関数のほうが時間がかかっているということでしょうか。

そうなんです、プロファイルとって、100 万回単位で呼ばれてる

処理があったので、少しでも短くしようと、if 文を削除したら、

かえって遅くなってしまうという・・・

いったい俺にどうしろと。

> どんなコードになっているのか見てみたいです。

みるかぎり、おかしなことにはなってないんですが・・・

今度また該当部分のアセンブラコードをアップします。

ところで、gcc では、どんな結果になるんでしょうか。

1244. ゆうき喬史 2002 年 10 月 16 日 (水) 13:36

>>1

ども、ゆうき喬史です。

> どんなコードになっているのか見てみたいです。

以下、アセンブラソースです。

_foo PROC NEAR

mov edx, DWORD PTR _p$[esp-4]

mov cl, BYTE PTR [edx]

lea eax, DWORD PTR [edx+1]

cmp cl, 123

je SHORT $L65683

$L65720:

or eax, -1

ret 0

$L65683:

mov cl, BYTE PTR [eax]

test cl, cl

je SHORT $L65720

inc eax

cmp cl, 125

jne SHORT $L65683

cmp BYTE PTR [eax], 125

je SHORT $L65683

sub eax, edx

ret 0

_foo ENDP

_goo PROC NEAR

mov edx, DWORD PTR _p$[esp-4]

lea eax, DWORD PTR [edx+1]

$L65694:

mov cl, BYTE PTR [eax]

test cl, cl

je SHORT $L65727

inc eax

cmp cl, 125

jne SHORT $L65694

cmp BYTE PTR [eax], 125

jne SHORT $L65728

jmp SHORT $L65694

$L65727:

or eax, -1

ret 0

$L65728:

sub eax, edx

ret 0

_goo ENDP

遅い原因わかりました。

けど、どうしようもないというのもわかりました。

1245. M.Kamada 2002 年 10 月 17 日 (木) 00:50

>>2

> ところで、gcc では、どんな結果になるんでしょうか。

こうなりました。わりと普通ですね。

とりあえず、余分な分岐命令を実行する必要はなさそうです。

.align 4

.def _foo; .scl 3; .type 32; .endef

_foo:

movl 4(%esp),%ecx

leal 1(%ecx),%edx

cmpb $123,(%ecx)

je L4

movl $-1,%eax

ret

.align 4

L4:

cmpb $0,(%edx)

je L7

movb (%edx),%al

incl %edx

cmpb $125,%al

jne L4

cmpb $125,(%edx)

je L4

movl %edx,%eax

subl %ecx,%eax

ret

.align 4

L7:

movl $-1,%eax

ret

.align 4

.def _goo; .scl 3; .type 32; .endef

_goo:

movl 4(%esp),%ecx

leal 1(%ecx),%edx

.align 4

L13:

cmpb $0,(%edx)

je L16

movb (%edx),%al

incl %edx

cmpb $125,%al

jne L13

cmpb $125,(%edx)

je L13

movl %edx,%eax

subl %ecx,%eax

ret

.align 4

L16:

movl $-1,%eax

ret

1246. ゆうき喬史 2002 年 10 月 19 日 (土) 20:31

>>4

こんにちは、ゆうきです。

> > ところで、gcc では、どんな結果になるんでしょうか。

>

> こうなりました。わりと普通ですね。

> とりあえず、余分な分岐命令を実行する必要はなさそうです。

わざわざ、ありがとうございます。

やっぱり、gcc だと普通になるんですね。

VC++6 では、この他にも、命令削って遅くなったり、速度が

変わらなかったりがあって途方にくれてしまいました。


1238. ありがとうございます すけ 2002 年 10 月 14 日 (体育の日) 22:22

ども、すけです。

お騒がせしました…どーやら、「ハードが不安定」ということ

みたいです :<

その先もステップ動作させてみたら

「$FFF006A0 番地のリード状態」

「$FFF006A4 番地のリード状態」

「$FFF006A8 番地のリード状態」

と推移していきました…

『$FFF006A0 には、BRA 命令があるんですが

BRA 命令は実行されなかったものとみられます…』

「$FFF006A4 以降の内容は実行されているみたいです」

(外部回路の RS-232 用クロックの分周がキチンと指定した分周比で

出力されるので…)

っで、「まあ動くからいいかぁ」と思って通常動作させてみたら…

電源オンから数秒でフリーズしました

もっともハードがめちゃ不安定ということですから…

すべては、しっかりハードが動いてから ということですね。

う~ん、はずかちぃ~。(+o+)

1239. Re: ありがとうございます M.Kamada 2002 年 10 月 15 日 (火) 00:38

>『$FFF006A0 には、BRA 命令があるんですが

> BRA 命令は実行されなかったものとみられます…』

>「$FFF006A4 以降の内容は実行されているみたいです」

$06A0 にジャンプしたのではなくて read しただけでしたか。

ライン read のような挙動にも見えますが、命令キャッシュが

OFF なのでそれはないはずですよね。

ジャンプ先が奇数ワードのときは 1 ワード手前からフェッチが

始まりますが、この場合は偶数ワードなのでその可能性もなし。

68040 には分岐キャッシュはないし…

> っで、「まあ動くからいいかぁ」と思って通常動作させてみたら…

> 電源オンから数秒でフリーズしました

いきなり数秒も動くのは凄いような。

がんばってレリーズしてください。


1236. 予算 0 円なんすけど、教えていただけまふ? すけ 2002 年 10 月 14 日 (体育の日) 17:22

どうも、すけです。

ちょいと悩も事がありまして教えていただけると幸いです。

68040 についてなんですが‥

FFF0001A:61 00 06 88 ・・・・

というコードで $06A4 番地にジャンプすると思ってたら

$00007FC 番地 (スタック)に $FFF0001E を書き込んで

$06A0 番地に飛びたがるんでス…

$0688+$1C→$06A4 だとおもっていましたが ・・・・

こういうことってありえますか?

ハードが自作なので(って、cpu+sram+rom+ μ D8251 しかありませんが)・・・トンチンカンな質問かもしれませんが…

気が向いたら教えてください、

---------------------------------------------

(参考)

XC68040 に 4 個の ROM と RAM をつなげて…

RAM $00000000~$0001FFFF。

ROM $FFF00000~$FFF1FFFF。

ROM:(内容)

FFF00000:00 00 00 00 FF F0 00 08

FFF00008:20 7C 00 00 08 00 2E 48

FFF00010:70 00 4E 7B 08 01 4E 7B

FFF00018:00 02 61 00 06 88 ** **

********

(PRN ファイル)

X68k High-speed Assembler v3.09+87 Copyright 1990-94/96-99 Y.Nakamura/M.Kamada

Oct/14/02 16:46:03

<68040.s>

1 00000000 ;*********** main **************

2 00000000 .CPU 68040

3 00000000 main:

4 00000000 4E71 nop

5 00000002 4E71 nop

6 00000004 4E71 nop

7 00000006 4E71 nop

8 00000008 207C00000800 move.l #$00000800,a0

9 0000000E 2E48 move.l a0,a7

10 00000010

11 00000010 7000 move.l #0,d0

12 00000012 4E7B0801 movec d0,VBR

13 00000016 4E7B0002 movec d0,CACR

14 0000001A

15 0000001A 61000688_000006A4 bsr vecinz

(以下略)

1237. Re: 予算 0 円なんすけど、教えていただけまふ? M.Kamada 2002 年 10 月 14 日 (体育の日) 21:24

すけさん、こんにちは

> FFF0001A:61 00 06 88 ・・・・

> というコードで $06A4 番地にジャンプすると思ってたら

>

> $00007FC 番地 (スタック)に $FFF0001E を書き込んで

> $06A0 番地に飛びたがるんでス…

>

> $0688+$1C→$06A4 だとおもっていましたが ・・・・

> こういうことってありえますか?

ROM の内容に間違いがなければソフトウェア的にはあり得ません。

最初の write の直後というのが気がかりですが、ハードウェアは

安定しているのでしょうか。


1234.「スタイルシートオン」について 北村 2002 年 9 月 30 日 (月) 02:19

はじめまして。「俺ぽーたる」経由で 9 月 26 日の日記を拝見しました。

「スタイルシートオン」のスクリプトですが、ページで代替スタイルシートを用意している場合だと、もともと disabled=true である代替スタイルシートまでもが有効となってしまうので、表示が崩れる場合があるようです。と念のためご報告まで。

1235. Re:「スタイルシートオン」について M.Kamada 2002 年 9 月 30 日 (月) 11:16

北村さん、こんにちは。

>「スタイルシートオン」のスクリプトですが、ページで代替スタイルシートを用意している場合だと、もともと disabled=true である代替スタイルシートまでもが有姑なってしまうので、表示が崩れる場合があるようです。と念のためご報告まで。

ご報告ありがとうございます。

少し改良してみました。


1232. Re: 対消滅 KYOSKE 2002 年 9 月 20 日 (金) 20:45

もう少し詳しく書いた方が良かったかな。

1.既出を「がいしゅつ」と読んでいた。

2.2ちゃんねるで「がいしゅつって、既出のことですか?」という書きこみを見る。

3.既出の読み方を調べて見る。

4.「きしゅつ」が正しい読み方だった。(ガーーーーン)

というプロセスを経ています。(w

> 自分の読み方と他の人の読み方が違うときは、

> どちらが正しいか辞書で調べて確認しましょう。

> いつも他の人が正しいとは限りません。

ええ、何事も鵜呑みにせず、自分で調べて見ることは、

大切だと思います。


1230. 対消滅 KYOSKE 2002 年 9 月 20 日 (金) 09:08

対消滅って、「ついしょうめつ」って読むんですね。

いままで、「たいしょうめつ」って読んでいました。

ひとつ賢くなりました。

ちなみに、「既出」、「巣窟」も2ちゃんねる見るまで、

正しく読めていなかった人です。(w

1231. Re: 対消滅 M.Kamada 2002 年 9 月 20 日 (金) 09:57

KYOSKE さん、こんにちは。

> ちなみに、「既出」、「巣窟」も2ちゃんねる見るまで、

> 正しく読めていなかった人です。(w

自分の読み方と他の人の読み方が違うときは、

どちらが正しいか辞書で調べて確認しましょう。

いつも他の人が正しいとは限りません。

既出(きしゅつ)

巣窟(そうくつ)


1229. シルエットくいず ザキ 2002 年 9 月 18 日 (水) 21:54

花びらの向こう側に虫がいる…

1233. Re: シルエットくいず M.Kamada 2002 年 9 月 23 日 (秋分の日) 15:35

ザキさん、こんにちは。

> 花びらの向こう側に虫がいる…

遅くなりましたが、正解を発表しました。

ザキさんの「花びら」と「虫」はあっていました。

虫の種類は正解者なしでした。


1227. 四角形の重心 ザキ 2002 年 9 月 14 日 (土) 20:05

答えは…

サッパリ分かりません (/ ρ\)

1228. Re: 四角形の重心 M.Kamada 2002 年 9 月 14 日 (土) 21:42

ザキさん、こんにちは。

> 答えは…

> サッパリ分かりません (/ ρ\)

ヒントを出しておきました。


1225. 虫食い算回答っ。 つちや 2002 年 9 月 7 日 (土) 20:37

4005x5381=21550905 となりました。

□□□5

×□□□1

─────

□□□5

□□□□□

□□□□□

20025

────────

2□□□0905

神のお告げで、ここまでを速攻で決めると、

一撃で被乗数が判明し、あとは埋めてゆくだけとあいなりました。

*解の一位が5のため、被乗数か乗数の一位のどちらかが5。

*筆算の一行め?が、4桁のため、乗数の一位が5ではやりにくい。

ってな具合で。小学生的アプローチでなんとか。^^;

1226. Re: 虫食い算回答っ。 M.Kamada 2002 年 9 月 8 日 (日) 17:57

つちやさん、こんにちは。

> 4005x5381=21550905 となりました。

せーかいです。

>*解の一位が5のため、被乗数か乗数の一位のどちらかが5。

>*筆算の一行め?が、4桁のため、乗数の一位が5ではやりにくい。

>

> ってな具合で。小学生的アプローチでなんとか。^^;

清く正しい虫食い算の解き方だと思いマス。


1223. Re. 答案 すけ 2002 年 8 月 27 日 (火) 06:55

A (4 n +3)=2+(-1/2)^(2n+1)

は。。。

A(4n+3)=2-(1/2)(-1/4)^n

でした ・・・・

----------------------------------

2 と、(-1/4) をながめていると

『統一』できそうなきがしてきたケド…


1222. 答案。 すけ 2002 年 8 月 26 日 (月) 16:01

一般項 A(n)は ,n=0,1,2…として次の 4 式で表わされる。

A (4 n)=2(1-(-1/4)^n)

A (4 n +1)=2+(-1/4)^n

A (4 n +2)=2

A (4 n +3)=2+(-1/2)^(2n+1)

巧く、ひとつにまとめられそうであるが ・・・・

← 前のページ | 1 | 16 17 18 19 20 21 22 23 24 25 26 | 28 | 次のページ →