[過去ログ] 高校数学の質問スレ Part434 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
360
(2): 2024/04/20(土)21:45 ID:K224KWOY(2/2) AAS
>>349
2からnまでのリストを作り、そこから、合成数を取り除くという発想は面白い。だけど雑すぎる。
行列は、「○行△列目で値は□」等という情報を持つが、位置情報は必要無いし、値も一度計算してしまえば、忘れて言い。
つまり、行列を保存しておく必要は全くない。これを取り入れれば次になる。

n=2500;a=Range[2,n];Do[a=DeleteCases[a,i*j],{i,2,n},{j,2,n}];a

合成数の発生範囲を調節すると、次になる。

n=2500;a=Range[2,n];Do[a=DeleteCases[a,i*j],{i,2,Sqrt[n]},{j,i,n/i}];a
省2
364: 2024/04/21(日)06:52 ID:0si37W7j(1/2) AAS
>>360
レスありがとうございます。
DeleteCasesの使い方など勉強になります。
そのコマンドの存在すら知らなかった(^_^;)

Rでの(1:n)[-outer(2:n,2:n)][-1]の移植でした。
R言語だと配列[-n]でインデックスがnを除いた配列(nは配列でも行列でも可)を返すのですので便利。
Wolfram言語での同等の機能を検索しながらコーディングしています。
377: 2024/04/21(日)11:44 ID:KNrj0Rg+(2/10) AAS
>>360
Do[a=DeleteCases[a,i*j],{i,2,Floor[Sqrt[n]]},{j,i,Floor[n/i]}] ; a
でなくて
Do[a=DeleteCases[a,i*j],{i,Pi,Sqrt[n]},{j,i,n/i}] ; a
でも動作するのは驚き。
整数必須と思っていた。

何事にも先達はあらまほしきことなり
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s