>>438
C#で短く書けた
https://ideone.com/SwAZsS
x.EndsWith(" ") でなく x.LastOrDefault() == ' ' の方が長くはなるが効率的かも知れない。
探検
プログラミングのお題スレ Part22
838デフォルトの名無しさん
2025/09/10(水) 21:21:57.38ID:rb/tQvOM839836
2025/09/10(水) 22:49:33.81ID:NV1RL9MH840839
2025/09/10(水) 23:35:38.95ID:6JfM8ZLf >>485 scheme (chicken 4.13)
https://ideone.com/A6K3XL
・(cons y x)して最後にreverseする
・(list x y)して最後にflattenするのが >>839
https://ideone.com/A6K3XL
・(cons y x)して最後にreverseする
・(list x y)して最後にflattenするのが >>839
841840
2025/09/11(木) 23:05:23.09ID:WPUXbxYH842デフォルトの名無しさん
2025/09/12(金) 15:41:31.15ID:IRXhEt4s お題
1行1単語のリストが、しりとりとして成立しているか判定するコードを書きなさい
成立していたら◯、不成立なら☓をしゅつりょくすること
【入力】
りんご
ごりら
らっぱ
1行1単語のリストが、しりとりとして成立しているか判定するコードを書きなさい
成立していたら◯、不成立なら☓をしゅつりょくすること
【入力】
りんご
ごりら
らっぱ
843デフォルトの名無しさん
2025/09/12(金) 16:19:33.85ID:uazXAFOm 入力例に対する出力例が存在しなくて曖昧
それを補わないと問題が不成立
それを補わないと問題が不成立
844デフォルトの名無しさん
2025/09/12(金) 20:36:05.46ID:I2wrB793 >>438 scheme (chicken 4.13)
https://ideone.com/SlkO0l
・空白時にdrop-while
>>842 ruby
https://ideone.com/mY83rW
https://ideone.com/SlkO0l
・空白時にdrop-while
>>842 ruby
https://ideone.com/mY83rW
845デフォルトの名無しさん
2025/09/13(土) 12:21:51.23ID:nVmVuqdT 退屈そうだからちょっと難易度高め
【問題】
各桁の数が1~5のいずれかで全ての桁の合計がMとなる正整数の集合をG[M]で表す。
例えば123、111111はG[6]の要素、255、222222はG[12]の要素となる。
整数M(1≦M≦32)、N(1≦N)が与えられたとき、N番目に小さいG[M]の要素を求めよ。
ただしNがG[M]の要素数より大きい場合の出力は0とする。
求める数値は文字列または各桁の数の配列による表現も可能とする(123⇔"123"⇔[1,2,3])。
【例】 #入力は(M,N)
(2,1) → 2
(2,2) → 11
(2,3) → 0
(20,1) → 5555
(20,2) → 14555
(20,3) → 15455
(20,400096) → 11111111111111111111
(20,400097) → 0
(32,1) → 2555555
(32,2) → 3455555
(32,3) → 3545555
(32,1000) → 34355354
(32,1000000) → 11532334334
(32,1000000000) → 2141111311212411131
(32,1333610936) → 11111111111111111111111111111111
(32,1333610937) → 0
【ヒント(?)】
G[M]の要素数の数列は下記pentanacci数列a[n]から先頭の[0,0,0,0,1]を除いたものとなる(|G[M]| = a[M + 4])。
・a[0,1,2,3,4] = [0,0,0,0,1]
・a[k] = a[k-1] + a[k-2] + a[k-3] + a[k-4] + a[k-5] (k≧5)
※a[37]までのリスト: https://oeis.org/A001591/list
【問題】
各桁の数が1~5のいずれかで全ての桁の合計がMとなる正整数の集合をG[M]で表す。
例えば123、111111はG[6]の要素、255、222222はG[12]の要素となる。
整数M(1≦M≦32)、N(1≦N)が与えられたとき、N番目に小さいG[M]の要素を求めよ。
ただしNがG[M]の要素数より大きい場合の出力は0とする。
求める数値は文字列または各桁の数の配列による表現も可能とする(123⇔"123"⇔[1,2,3])。
【例】 #入力は(M,N)
(2,1) → 2
(2,2) → 11
(2,3) → 0
(20,1) → 5555
(20,2) → 14555
(20,3) → 15455
(20,400096) → 11111111111111111111
(20,400097) → 0
(32,1) → 2555555
(32,2) → 3455555
(32,3) → 3545555
(32,1000) → 34355354
(32,1000000) → 11532334334
(32,1000000000) → 2141111311212411131
(32,1333610936) → 11111111111111111111111111111111
(32,1333610937) → 0
【ヒント(?)】
G[M]の要素数の数列は下記pentanacci数列a[n]から先頭の[0,0,0,0,1]を除いたものとなる(|G[M]| = a[M + 4])。
・a[0,1,2,3,4] = [0,0,0,0,1]
・a[k] = a[k-1] + a[k-2] + a[k-3] + a[k-4] + a[k-5] (k≧5)
※a[37]までのリスト: https://oeis.org/A001591/list
846デフォルトの名無しさん
2025/09/13(土) 21:09:19.41ID:rhMflYHg847デフォルトの名無しさん
2025/09/14(日) 02:07:05.25ID:K9dbpWus848デフォルトの名無しさん
2025/09/14(日) 02:17:37.66ID:ymjVQadn849デフォルトの名無しさん
2025/09/14(日) 21:00:58.83ID:Yva1i9w5 >>845
R
https://ideone.com/XhdJw4
>>846より行列計算が速くなった。変数名mとnが逆だったのを直した。
C++に移植
https://ideone.com/9dibE0
R
https://ideone.com/XhdJw4
>>846より行列計算が速くなった。変数名mとnが逆だったのを直した。
C++に移植
https://ideone.com/9dibE0
850デフォルトの名無しさん
2025/09/14(日) 22:50:48.82ID:Yva1i9w5851848
2025/09/15(月) 00:34:43.20ID:aTaxsjKO852851
2025/09/15(月) 00:58:49.72ID:aTaxsjKO853デフォルトの名無しさん
2025/09/15(月) 22:27:44.05ID:g8zilsSB >>850では行末に無駄な半角空白文字が出力される。消すには最後から3行目のnthPartition(m, n)を
trim( )で囲めば良い。
trim( )で囲めば良い。
854852
2025/09/16(火) 01:02:30.84ID:3CKXdG+H855854
2025/09/17(水) 22:30:29.22ID:U8XLHdaR856デフォルトの名無しさん
2025/09/17(水) 22:43:48.03ID:RlLGu0ST857デフォルトの名無しさん
2025/09/17(水) 23:39:47.32ID:RlLGu0ST >>856
BigInt化してm = 2000, n = 2¹⁰²⁴で実行したら違いが明確になった。
(1) >>849のBigInt版
https://ideone.com/S92L9G
(2) >>856のBigInt版
https://ideone.com/3x03xT
加減算・代入回数を削減した(2)の方が確かに速く、(1)の約4分の3の実行時間。
BigInt化してm = 2000, n = 2¹⁰²⁴で実行したら違いが明確になった。
(1) >>849のBigInt版
https://ideone.com/S92L9G
(2) >>856のBigInt版
https://ideone.com/3x03xT
加減算・代入回数を削減した(2)の方が確かに速く、(1)の約4分の3の実行時間。
858855
2025/09/18(木) 21:13:33.56ID:mk4sIpUK859858
2025/09/19(金) 21:59:08.62ID:e72KvXSi860859
2025/09/20(土) 21:39:31.29ID:zrmIrXrK861860
2025/09/22(月) 21:37:36.11ID:9W7EeSnZ >>845 ruby 2.5.5
https://ideone.com/MDHX6v
・内部表現のさらなる変更
・パターン数を直接キャッシュするようにした
cc[合計][幅] = とりうるパターン数
>>845 ruby
https://ideone.com/PB8S7w
・m = 2000, n = 1 << 1024
https://ideone.com/MDHX6v
・内部表現のさらなる変更
・パターン数を直接キャッシュするようにした
cc[合計][幅] = とりうるパターン数
>>845 ruby
https://ideone.com/PB8S7w
・m = 2000, n = 1 << 1024
862861
2025/09/23(火) 01:13:48.01ID:XS9iE/WB863862
2025/09/26(金) 21:58:13.14ID:rAOVnJgT >>845 ruby
https://ideone.com/YEGl7C
・実りの無い再帰を省略
・結果を配列で集めず整数で集める
>>845 c++
https://ideone.com/f62fkG
・rubyの移植版
>>845 ocaml
https://ideone.com/cHYmdv
・rubyの移植版
・任意精度整数は昔ながらのnumのBig_int使用
・ZarithのZは確かに速かったけどideoneでは使えずボツ
https://ideone.com/YEGl7C
・実りの無い再帰を省略
・結果を配列で集めず整数で集める
>>845 c++
https://ideone.com/f62fkG
・rubyの移植版
>>845 ocaml
https://ideone.com/cHYmdv
・rubyの移植版
・任意精度整数は昔ながらのnumのBig_int使用
・ZarithのZは確かに速かったけどideoneでは使えずボツ
864デフォルトの名無しさん
2025/10/19(日) 18:23:02.12ID:UPYRyJKx お題
硬貨の種類と金額が与えられます。
硬化の合計がちょうど金額と同じになるように硬貨を選ぶとき、使用枚数の最小値を求めてください。
支払いが不可能なときは-1を出力します。
各硬貨は無制限に使用できます。
額面の大きい硬貨を優先して選ぶ貪欲法が常に最適解を与えるとは限らないことに注意。
入力
硬貨:[1,7,10]
金額:14
出力
使用枚数:2
硬貨の種類と金額が与えられます。
硬化の合計がちょうど金額と同じになるように硬貨を選ぶとき、使用枚数の最小値を求めてください。
支払いが不可能なときは-1を出力します。
各硬貨は無制限に使用できます。
額面の大きい硬貨を優先して選ぶ貪欲法が常に最適解を与えるとは限らないことに注意。
入力
硬貨:[1,7,10]
金額:14
出力
使用枚数:2
865デフォルトの名無しさん
2025/10/19(日) 21:36:07.90ID:1trCfbwI866デフォルトの名無しさん
2025/10/22(水) 21:34:32.83ID:vm0Iby1T867デフォルトの名無しさん
2025/10/26(日) 09:31:44.23ID:Y3+SSpql お題というか、協力してほしい感じなんですが、素因数分解関数をHaskellで書いて色んな数を素因数分解して遊んでいたら確認したい事実に出くわしたので。
31 <- 素数
331 <- 素数
3331 <- 素数
33331 <- 素数
333331 <- 素数
と、3が5個並んで末尾が1の数字までは素数という事が分かりましたが、いかんせん、ノートだと力不足。
それにCとかで書き直したらもっと先まで行けるかも?という事で、この先、どこまで33...31が素数なのかを調べて欲しいのです。
協力お願いします<(_ _)>
一応、Haskellではこんなコードです。
factorization n = f primes n
where primes = 2:(sieve [3,5..])
where sieve (p:xs) = p:(sieve [x | x <- xs, x `mod` p /= 0])
f (p:ps) n | n <= p = [n]
f (p:ps) n | n `mod` p == 0 = p:f (p:ps) (n `div` p)
f (p:ps) n = f ps n
31 <- 素数
331 <- 素数
3331 <- 素数
33331 <- 素数
333331 <- 素数
と、3が5個並んで末尾が1の数字までは素数という事が分かりましたが、いかんせん、ノートだと力不足。
それにCとかで書き直したらもっと先まで行けるかも?という事で、この先、どこまで33...31が素数なのかを調べて欲しいのです。
協力お願いします<(_ _)>
一応、Haskellではこんなコードです。
factorization n = f primes n
where primes = 2:(sieve [3,5..])
where sieve (p:xs) = p:(sieve [x | x <- xs, x `mod` p /= 0])
f (p:ps) n | n <= p = [n]
f (p:ps) n | n `mod` p == 0 = p:f (p:ps) (n `div` p)
f (p:ps) n = f ps n
868デフォルトの名無しさん
2025/10/26(日) 09:50:23.90ID:Y3+SSpql あ、ただの素数判定でも良いです。
ちなみに、66..61の場合は6661までは素数ですが66661は素数じゃなくなりました。
なので、33..31もどこかで素数じゃなくなるのか?それともずっと素数になりそうなのか?って疑問が持ち上がりました。
ちなみに、66..61の場合は6661までは素数ですが66661は素数じゃなくなりました。
なので、33..31もどこかで素数じゃなくなるのか?それともずっと素数になりそうなのか?って疑問が持ち上がりました。
869デフォルトの名無しさん
2025/10/26(日) 10:13:01.91ID:XLS0tlS8 >>867
興を削いですまんが、「33...331は素数か」でググったら、AIが(あまり大きくない桁数で)答えを示してくれた…
興を削いですまんが、「33...331は素数か」でググったら、AIが(あまり大きくない桁数で)答えを示してくれた…
870デフォルトの名無しさん
2025/10/26(日) 10:19:15.38ID:0X7G2IAI871869
2025/10/26(日) 10:21:11.68ID:XLS0tlS8872デフォルトの名無しさん
2025/10/26(日) 17:08:32.87ID:Y3+SSpql >>869-871
いえいえ、ああ、やっぱりずっと素数という訳にはいかないんですね…。
何か素数の秘密に触れるヒントか?と心躍ったけど、そんな訳なかったですね(´・ω・`)
あやうく数学スレで鼻息荒く書き込むところでした。
ありがとうございました<(_ _)>
いえいえ、ああ、やっぱりずっと素数という訳にはいかないんですね…。
何か素数の秘密に触れるヒントか?と心躍ったけど、そんな訳なかったですね(´・ω・`)
あやうく数学スレで鼻息荒く書き込むところでした。
ありがとうございました<(_ _)>
873デフォルトの名無しさん
2025/10/26(日) 17:55:12.41ID:N6SeZsiy 29bitで収まる範囲内
333333331 = 17 × 19607843
これを求められなかったHaskellはすごく遅い?
333333331 = 17 × 19607843
これを求められなかったHaskellはすごく遅い?
874デフォルトの名無しさん
2025/10/26(日) 23:06:07.50ID:Y3+SSpql >>873
速いアルゴリズムに変えたら何とか1分ほどでその数字まで届きました。
(そもそも、>867 のは美しいとか短いとかの枕詞が付くコードですし。33...31に気付かなかったら4桁ぐらいが実用的ならおkだったので)
改良版Haskell
pfactorization = f primes
where primes =2:3:5#primes
where n#x@(m:q:y)=[n|gcd m n<2]++(n+2)#last(x:[m*q:y|q^2-3<n])
というか、それより1桁少ない方が少し時間かかりますね。
19607843 < 33333331 なので、素数比較回数が多いのかと。
速いアルゴリズムに変えたら何とか1分ほどでその数字まで届きました。
(そもそも、>867 のは美しいとか短いとかの枕詞が付くコードですし。33...31に気付かなかったら4桁ぐらいが実用的ならおkだったので)
改良版Haskell
pfactorization = f primes
where primes =2:3:5#primes
where n#x@(m:q:y)=[n|gcd m n<2]++(n+2)#last(x:[m*q:y|q^2-3<n])
というか、それより1桁少ない方が少し時間かかりますね。
19607843 < 33333331 なので、素数比較回数が多いのかと。
875デフォルトの名無しさん
2025/10/26(日) 23:07:37.04ID:Y3+SSpql あ、f の方を忘れた。
f のコードは変更なしです。
f のコードは変更なしです。
876デフォルトの名無しさん
2025/11/07(金) 05:48:17.42ID:ckPLmv2U >>868
cだとこんな感じでいいのかな?
3333333333333331くらいまで一瞬でできる
#include <stdio.h>
int main(void) {
long long d, n;
printf("Enter a number: ");
scanf("%lld", &n);
for (d = 2; d * d <= n; d++) {
if (n % d == 0)
break;
}
if (d * d <= n)
printf("%lld is divisible by %lld\n", n, d);
else
printf("%lld is prime.\n", n);
return 0;
}
cだとこんな感じでいいのかな?
3333333333333331くらいまで一瞬でできる
#include <stdio.h>
int main(void) {
long long d, n;
printf("Enter a number: ");
scanf("%lld", &n);
for (d = 2; d * d <= n; d++) {
if (n % d == 0)
break;
}
if (d * d <= n)
printf("%lld is divisible by %lld\n", n, d);
else
printf("%lld is prime.\n", n);
return 0;
}
レスを投稿する
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【悲報】日本人「日本が中国と戦争になったら世界中の国が応援してくれるぞ!」 [616817505]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【ほんこん悲報】吉本新喜劇の中国公演が中止に! [523957489]
