プログラミングのお題スレ Part22 (863レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
241
(1): 9 [sage] 2024/02/16(金)02:56:10.41 ID:7jtCAGu+(1/2)
>>234 Perl5

for $n (0,17,100,123459321) {
 my %a;
 for (0..$n) {
  $i = $n - $_;
  $a{$i} = $i if 0 <= $i and $i =~ /^((\d)(?1)\2|\d?)$/;
  $j = $n + $_;
  $a{$j} = $j if $j =~ /^((\d)(?1)\2|\d?)$/;
  last if keys %a;
 }
 @a = keys %a;
 print "$n -> @a\n";
}

※見やすくするためインデントを全角スペースに置換してあります。

実行結果

$ perl 22_234_palindromic_number.pl
0 -> 0
17 -> 22
100 -> 99 101
123459321 -> 123464321 123454321
325
(1): デフォルトの名無しさん [] 2024/04/15(月)21:01:04.41 ID:dSNEYg5r(1)
>>322
p < 0 のとき(= 三角形を作れない場合)は浮動小数点数の特性に関係なく無限ループになる。
sqrt(p) と同様にNANを返すには、if (p < 0) return 0 / (p - p); を追加すれば良い。

p > 0 のときは無限ループにならないはず。以下が検証プログラム。
https://ideone.com/mzemEM

x = sqrt(p), y = p / x とすると、浮動小数点数の特性により x == y とならない場合は存在する。
このとき、xとyの仮数部を整数と見なした値(以降では「仮数整数」と呼ぶ)の差は1なので、
z = (x + y) / 2 はxとyのうち仮数整数が偶数の方に一致する。zを新たなxとして代入しyとzを
再計算すれば、今度はxの仮数整数が偶数なのでzはxに必ず一致し、>>321の収束判定条件が成立する。

具体例で見ると、p = 2 のときはxの仮数整数が奇数なので x != z となるが、zを新たなxとして代入し
再計算すれば x == z が成立する。桁上がりが起こる p = 3.9999999999999996 のときも、同様に
再計算で x == z が成立する。p = 3 のときはxの仮数整数が偶数なので x == z が成立し再計算は不要。
420: デフォルトの名無しさん [sage] 2024/09/03(火)10:17:03.41 ID:HQsZJT0t(2/3)
>>419
ありがとうございます
そうするとemacsが使えるようになるのでしょうか?
それともプログラミング言語としてのlisp環境が整うだけでしょうか?
511: 506 [sage] 01/30(木)21:43:26.41 ID:ID2xuR+0(1)
>>500 c
https://ideone.com/LLFaOP
・unsigned int m[128] = {0};を使って集計
515: デフォルトの名無しさん [sage] 01/31(金)15:33:43.41 ID:b4vq2KMj(1)
う~んこの嫌われムーブはあのおじさんか
このスレでは自重して欲しいな
538
(2): デフォルトの名無しさん [sage] 02/07(金)22:53:14.41 ID:ovhX7KXo(1/2)
>>510 c
https://ideone.com/uYlPLX
・f_537 は537さんのパクリ
549
(1): デフォルトの名無しさん [] 02/08(土)20:02:06.41 ID:EDI8nVtP(2/2)
>>510
C++
https://ideone.com/TluWQi

>>548では検索文字列が短くて高速化されたか分かりにくかったので、長くして529, 534, 548の
実行時間を比較してみると、効果が顕著に現れた。
846
(1): デフォルトの名無しさん [] 09/13(土)21:09:19.41 ID:rhMflYHg(1)
>>845
R
https://ideone.com/R7chTY

ヒントはどう使うのかわからなかった。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.039s