[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/12 17:52 / Filesize : 270 KB / Number-of Response : 1028
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングのお題スレ Part16



1 名前:デフォルトの名無しさん mailto:sage [2019/11/17(日) 09:00:22.10 ID:xqEdXdr6.net]
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
codepad.org/
compileonline.com/
rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part15
mevius.5ch.net/test/read.cgi/tech/1564310397/

545 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 15:29:53.46 ID:qVK/11PV.net]
A HAPPY NEW YEAR !!!

というコード。

546 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 04:45:53.28 ID:cCzcmPOa.net]
>>451

547 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 14:00:53.09 ID:2eGsq/cP.net]
(´;ω;`)

548 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 03:43:04.42 ID:ct9N0pK8.net]
お題

a^3 + b^3 + c^3 = 2020 * 2
の整数解を求めよ。

549 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 03:49:51.76 ID:ct9N0pK8.net]
追加

a^3 + b^3 + c^3 = 2020 / 2・2
の整数解を求めよ。

550 名前:デフォルトの名無しさん [2020/01/03(金) 03:54:35.20 ID:pVliia9g.net]
>>486
Kotlin
https://paiza.io/projects/5OHDudzLFUjSV6DAdxFcfw

こんなので良いの?単に掛け算して一致するか比較しているだけなんだけど。
オマケとして重複しないようにはしているが。

551 名前:デフォルトの名無しさん [2020/01/03(金) 04:17:21.42 ID:pVliia9g.net]
>>532
C
https://paiza.io/projects/vMRPBddVA6FgCl6AHaGXOw

どう?

552 名前:デフォルトの名無しさん [2020/01/03(金) 04:18:44.02 ID:pVliia9g.net]
>>533
最後の 2・2 の部分って何? 2.2? こっちで文字化けしてちゃんと表示されてないだけ?

553 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 09:45:42.54 ID:+RiBlMC+.net]
>>536
2020 / 2・2 = 2020 / 2 * 2 = 2020



554 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 12:48:37.25 ID:3k7MKqlh.net]
>>532
200万以下だと38通り
(並び替えも数えるとその6倍)

>>533
2020は解無し
1010は100万までには解は無い
505は100万までに18個

555 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 12:51:02.88 ID:3k7MKqlh.net]
>>527
n乗して64bitの範囲だとn=2しか発見出来なかった

556 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 20:05:33.33 ID:3k7MKqlh.net]
>>532
C
https://ideone.com/ctjDC0

38個見つけるのに1時間くらいかかりました
38個目 (1661082, 440694, -1671358)

こういうのはC/C++が得意でしょう
他の言語で出来ます? (挑戦)

557 名前:デフォルトの名無しさん [2020/01/04(土) 17:22:50.50 ID:HJ66bOYq.net]
お題
>>514に関連して、F(F(80))の桁数を求めよ。

計算式は簡単だが…

558 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 17:47:47.60 ID:6lKY6ugm.net]
over flow周りはあってるんだかわからん
https://i.imgur.com/PndnV6t.png

559 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 19:01:02.66 ID:hAlxX0tq.net]
Mathematica ?

560 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 20:28:18.17 ID:rMjoeVI8.net]
お題: 文字列を逆順にしてコピーするreverse関数を定義せよ(既存のライブラリを使ってはならない)

561 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 20:40:17.01 ID:YRTK1M0u.net]
>>544 Ruby

puts 'ABCDEF'.chars.then{|a| a.size.times.map{a.pop}}.join

# => FEDCBA

562 名前:デフォルトの名無しさん [2020/01/04(土) 20:46:16.21 ID:HJ66bOYq.net]
>>544 PowerShell

function reverse($s) {-join $s[-1..-$s.length]}
reverse 文字列を逆順にしてコピーするreverse関数を定義せよ

-- 実行結果 --
よせ義定を数関esreverるすーピコてしに順逆を列字文

563 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 21:12:58.70 ID:AqMdau2S.net]
>>544 Ruby
def reverse( s ); s.chars.inject(:prepend); end



564 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 21:13:39.03 ID:rMjoeVI8.net]
>>544 C
https://ideone.com/8mVMpf

565 名前:デフォルトの名無しさん [2020/01/04(土) 21:26:02.66 ID:e7dEja3I.net]
>>544
Java
https://paiza.io/projects/t01pm19B5qJfhk_bOyJXMQ

566 名前:デフォルトの名無しさん [2020/01/05(日) 00:51:01.04 ID:Y4p4/H36.net]
>>544
Kotlin
https://paiza.io/projects/RdcgXqdUDC52BTO0y9n1zw

Kotlin の String には reversed() という文字列順序逆転のための拡張関数が最初からあって紛らわしいので rev() という名前で自作した。

567 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 08:25:52.70 ID:h+ccWvVu.net]
>>532
 {a, b, c} = {-12, -4, 18} {-4, 2, 16} など
>>533
 {a, b, c} = {-6, -2, 9} {-2, 1, 8} など

568 名前:デフォルトの名無しさん [2020/01/05(日) 08:35:04.57 ID:OU8kozEP.net]
>>544 Ruby
def rev(s)
(1..s.size).map{|i|s[-i]}.join
end

569 名前:デフォルトの名無しさん [2020/01/05(日) 11:04:36.67 ID:Z8HxF2cT.net]
>>544 Common Lisp
https://ideone.com/cORf5W
https://ideone.com/NbfBax

570 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 15:25:24.03 ID:+tGOF19X.net]
>>544 Python
def reverse(s):
return s[::-1]

571 名前:デフォルトの名無しさん [2020/01/05(日) 16:01:41.83 ID:8nvrboOv.net]
>>540
こういうのを見ると我々は離散数学についてはほぼ無力と思う。

572 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 17:02:46.74 ID:x729cdax.net]
>>555
勉強しとけ

573 名前:デフォルトの名無しさん [2020/01/05(日) 21:49:56.17 ID:2Fq0AHrI.net]
>>544 R
https://ideone.com/mfvWPO

>>546のPowerShellと違って、U+10000以上の文字が含まれていても正しく逆順にできる。



574 名前:デフォルトの名無しさん [2020/01/05(日) 21:52:10.17 ID:2Fq0AHrI.net]
>>542
仮数部も指数部も間違っている。整数で1の位まで正確に求められるよ。

575 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 22:31:31.58 ID:h+ccWvVu.net]
>>540 サンクス

>>532 の解
{13, 11, 8}
{15, 9, -4}
{8, 1, -2} * 2
{9, -2, -6} * 2
{16, -6, -15} * 2
{74, -23, -73}
{43, -27, -39} * 2
{171, -75, -166}
{169, 64, -172} * 2
{516, 93, -517}
{414, 385, -504} * 2
{530, 337, -572}
{1098, 939, -1291}
{1290, 171, -1291}
{1626, -957, -1507}
{2251, -712, -2227}
{3107, -587, -3100}
{3299, 1018, -3331}
{3509, -2525, -3004}
{4022, -3163, -3221}
{2673, 1114, -2736} * 2
{13571, -9259, -11948}
{15291, -8419, -14388}
{10102, 674, -10103} * 2
{43943, 28524, -47631}
{23689, -3382, -23666} * 2 など。

576 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 22:41:01.23 ID:h+ccWvVu.net]
>>533 の解
{8, 1, -2}
{9, -2, -6}
{16, -6, -15}
{43, -27, -39}
{169, 64, -172}
{414, 385, -504}
{530, 337, -572}
{2673, 1114, -2736}
{10102, 674, -10103}
{23689, -3382, -23666}
 ・・・ ・・・
{830541, 220347, -835679} など。

577 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 22:48:30.69 ID:bLPoA6E7.net]
>>541
C++
https://ideone.com.VJk9QA

倍精度だと微妙に精度が足りないので
擬似4倍精度で計算してみた

4倍精度や多倍長が使える言語やライブラリを使えば一瞬で書けるんだけど

578 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 22:49:34.33 ID:bLPoA6E7.net]

https://ideone.com/VJk9QA
でした

579 名前:デフォルトの名無しさん [2020/01/05(日) 23:29:51.01 ID:2Fq0AHrI.net]
>>562
正解。

Rには多倍長浮動小数点パッケージRmpfrがあるので、120ビット精度での計算をさっと書ける。
多倍長整数パッケージgmpにはフィボナッチ数列の第n項を求める関数があるので、第80項を
自分で求める必要すらない。
https://ideone.com/VcxXIm

C/C++にもlong double型があるので楽勝!と思っていると罠に嵌まる。Visual C++では
long doubleは移植性(単にコンパイルが通るという意味で)のために定義されているだけで、
double精度しかないので使えない。GNU C++ではlong doubleが本当のlong doubleなので使える。
https://ideone.com/3puKYQ

これをVisual C++やGNU Cで実行すると、1の位が2大きい不正確な値が表示されてしまう。
https://ideone.com/Md5qZz

580 名前:デフォルトの名無しさん [2020/01/05(日) 23:41:09.00 ID:2Fq0AHrI.net]
GNU C++にも罠があって、https://ideone.com/3puKYQ はideoneでは結果が正しく
表示されているが、Windows版でコンパイルすると「-0桁」になってしまう。
printfの%Lf書式指定子が何故か正常に機能しないようなので、long longに変換して
%lld書式指定子を使う必要がある。

581 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 23:58:45.24 ID:Z3Lsb/Mg.net]
>>562は擬似4倍精度の四則演算やルートがコンパクトにまとまっており参考になるかと思います

logは手抜きですが

582 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 00:24:13.90 ID:MKFPBGLf.net]
x87の80bit形式久々に聞いた
intelの失敗仕様

本当のlong doubleって言ったら128bitの事だと思う

583 名前:デフォルトの名無しさん [2020/01/07(火) 12:16:08 ID:lAASQTDH.net]
本当の?



584 名前:デフォルトの名無しさん [2020/01/07(火) 13:02:38.21 ID:PuPIfAOU.net]
大きさと精度が一致しないということでは。
例えば、16ビット整数の加算において255+1で桁あふれが発生するのは、勘弁してほしい。
16ビット整数であれば精度も16ビットあってほしい。

585 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 13:13:00.08 ID:4oL1Xwrc.net]
intelの拡張小数は箱も中身も80bitだぞ
隠れた1bitも隠さないから中身は79bitとも言えるかもしれないけど

586 名前:デフォルトの名無しさん [2020/01/07(火) 13:43:12.96 ID:PuPIfAOU.net]
GCCのlong doubleは128ビットあるから。

587 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 22:24:41.07 ID:Y9qs9jpB.net]
ひさびさにx87命令を使ってみた
masm形式なのでideoneでは動作しませんが
https://ideone.com/CdzenK

588 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 22:38:44.27 ID:Y9qs9jpB.net]
↑の出力結果

4893806799921043 (4893806799921042 + 0.855469)

丸める前の正確な値は
4893806799921042.8564973677594677....
なので小数第二位まで合っています
80bitでもギリギリって感じ

2進数だと
上位62bitまで正確、下位2bitが計算誤差
ということになります

589 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 23:09:32 ID:Y9qs9jpB.net]
https://pc.watch.impress.co.jp/docs/article/toku0101/plan8.htm

590 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 17:55:41.24 ID:E2HYW9Z+.net]
お題
フィボナッチ数列のn番目をF(n)とした時
F(F(F(80)))の下位4桁を求めよ

フィボナッチ数列は以下で定義される数列である
F(1)=1
F(2)=1
F(n)=F(n-2)+F(n-1)

591 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 18:47:53.52 ID:bVQLyL/p.net]
フィフィフィボナッチ数列はお腹いっぱい

592 名前: mailto:sage [2020/01/08(水) 19:48:23.85 ID:npJkZznC.net]
>>571
x87 すごくいいです!私も 9801FA に i487SX をようやく搭載して準備完了です!

593 名前:デフォルトの名無しさん [2020/01/08(水) 20:00:11.84 ID:naqRCa+g.net]
お前は昭和何年からタイムスリップしてきたんだ



594 名前:デフォルトの名無しさん [2020/01/08(水) 20:33:31.36 ID:DEoUiUkq.net]
>>574
R
https://ideone.com/lpnhLq

595 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 21:16:17.44 ID:E2HYW9Z+.net]
正解

C++
https://ideone.com/iSMABZ

596 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 23:38:33.13 ID:3Vg9kR1l.net]
>>544 Perl5

use feature qw{say signatures};
sub reverse($s) {
 map {substr $s, -$_, 1} 1..length $s;
}
say &reverse('reverse');

597 名前:デフォルトの名無しさん mailto:sage [2020/01/10(金) 10:41:25.62 ID:lJ/gG0sx.net]
お題:自分用expm1()的なもの。底はe以外でも良い。不正な引数でのエラー処理は
考慮しなくても良い。

598 名前:デフォルトの名無しさん mailto:sage [2020/01/10(金) 13:20:18.79 ID:KXQq2+DU.net]
目的が高精度なのかSIMDなのか単に出題者が勉強したいだけなのか
もしかしてx87命令を使わせたい?

599 名前:デフォルトの名無しさん [2020/01/10(金) 20:53:23.97 ID:1usNcOvE.net]
>>581
expm1()って何?

600 名前:デフォルトの名無しさん mailto:age [2020/01/10(金) 21:01:53.36 ID:jjOShzcG.net]
エキスペディション・マグニチュードワンのことやろな

601 名前:581 mailto:sage [2020/01/10(金) 22:06:13.03 ID:lJ/gG0sx.net]
>>582
SIMDやx87命令は考えてませんでした。
四則演算とexpm1()以外のライブラリ関数は使用可って事で。
やっぱし無難にテイラー展開で求めるのが楽?

>>583
例えば
ttps://linuxjm.osdn.jp/html/LDP_man-pages/man3/expm1.3.html

602 名前:デフォルトの名無しさん mailto:sage [2020/01/10(金) 22:10:45.27 ID:lApN4p1F.net]
四則演算も使ったらダメなのかい

603 名前:581 mailto:sage [2020/01/10(金) 22:42:31.47 ID:lJ/gG0sx.net]
>>586
訂正:
四則演算と、「expm1()以外の」ライブラリ関数は使用可



604 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 06:32:12.11 ID:wIXPHQcF.net]
出題者が方法を知りたいだけだよね?
なら質問スレ/宿題スレの方が適切

605 名前:デフォルトの名無しさん [2020/01/11(土) 09:22:26.15 ID:R1f0qLP3.net]
お題
素数番目の素数をスーパー素数と言う。
スーパー素数の最初の100個を求める。

606 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 10:27:02.77 ID:LQrvWU7L.net]
>>589 Ruby 2.7.0

require 'Prime'
p Prime.take(100).then{|p| Prime.take(p.last).select.with_index{p.include?(-~_2)}}

# => [3, 5, 7, [中略], 3761, 3911]

607 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 10:31:32.27 ID:LQrvWU7L.net]
typo

# => [3, 5, 11, 17, 31, [中略], 3733, 3761, 3911]

608 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 10:52:09.93 ID:VG9fEjGe.net]
お題
5の倍数の素数を5の倍数素数という
5の倍数素数を全て求めよ

609 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 11:10:43.29 ID:V+Dyph4l.net]
5の倍数の素数ってどういうことですか?
文字通りの意味なら5だけだと思うんですけど

610 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 13:10:43.10 ID:JM9/51Sk.net]
>>544 Perl4

use feature qw{say signatures};
sub rev($s) {
 $s ne '' and substr ($s, -1, 1, '') . rev($s)
}
say rev('string

611 名前:');

てす
[]
[ここ壊れてます]

612 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 13:14:26.71 ID:JM9/51Sk.net]
>>594 Perl5 だった…orz
しかし、このソースの「substr (」のrと(の間のスペース文字を省くと
スレへの書き込みで
HTTP/1.1 403 Forbidden
が起きて書き込めなかったのは謎…

613 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 14:01:21.01 ID:M68szGrA.net]
>>592
echo 5



614 名前:デフォルトの名無しさん [2020/01/11(土) 20:08:39.02 ID:go77StkR.net]
お題
20200111の階乗を素因数分解したとき、すべての因数の積は20200111の階乗だが、
すべての因数の和は何か。

615 名前:デフォルトの名無しさん [2020/01/11(土) 20:55:04.41 ID:r5wulSj/.net]
ナベアツ理論か。

616 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 00:39:46.42 ID:PW2KE/yt.net]
>>595
書き込めないコマンドは、一杯ある。
「ls −l」とか

5ch は、特定の命令によって、表示の見た目を変えることができるから、
単に、表示する文字列に変換するだけじゃなくて、

投稿されたテキストから、命令を抽出したりしているから、
バグりそうなテキストを排除しているのだろう

617 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 10:30:24.93 ID:Cuf7XVQy.net]
>>597
C++
https://ideone.com/30RQZF

618 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 16:28:53.41 ID:Svv4a/Ag.net]
お題: バイナリ―サーチを実装せよ(自分の記憶だけで書かなければならない)

619 名前:デフォルトの名無しさん [2020/01/12(日) 16:52:57.01 ID:qRMFtMw7.net]
>>601
Java
https://paiza.io/projects/y4RxMakkRM6x88qm5GGMvA

620 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 17:33:54.06 ID:kqg5PnqA.net]
>>601 Ruby

def bs(ary, &cond)
  return ary[0] && cond.call(ary[0]) ? ary[0] : ary[1] && cond.call(ary[1]) ? ary[1] : nil if ary.size < 3
  mid = ary.size / 2
  bs(ary[cond.call(ary[mid]) ? 0..mid : mid + 1..-1], &cond)
end

p bs([1,3,5,7,9]){|i| i > 0} # => 1
p bs([1,3,5,7,9]){|i| i > 3} # => 5
p bs([1,3,5,7,9]){|i| i > 9} # => nil

621 名前: mailto:sage [2020/01/12(日) 17:39:35.02 ID:ZvwnN6DP.net]
>>601
C++
https://mevius.5ch.net/test/read.cgi/tech/1434079972/33
std::set<int> の再実装にて、内部にバイナリーサーチを含んでいます

622 名前: mailto:sage [2020/01/12(日) 17:41:03.57 ID:ZvwnN6DP.net]
>>601
>(自分の記憶だけで書かなければならない)
これは重要かつ役に立つ訓練のしかたですね、この前は pthread の mutex と cond が理解できているかどうかを、この縛りのもとにコードを書いて試みました

623 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 18:20:53.87 ID:Xff8C4Cf.net]
>(自分の記憶だけで書かなければならない)

お題は全てそういうものだと思ってたが
みんなカンニングして回答してるの?



624 名前:デフォルトの名無しさん [2020/01/12(日) 19:59:45.88 ID:qRMFtMw7.net]
お題1
10ビットの乱数を10個作成して
2進数に変換して出力してください
10ビットに満たない数は0埋めしてください

例)
1101101110
1000100011
0100111001
1110000001
1001001100
0010001111
1111001000
1010110111
1100001001
0100110111

お題2
縦方向、または、横方向に1が連続しているところを調べて
最も1が連続しているところの1の数を出力してください
ビット数や乱数の数が増えてもちょっぱやで処理できるとなお良いです

625 名前:デフォルトの名無しさん [2020/01/12(日) 20:38:11.83 ID:xWFTg64o.net]
>>600
正解。あなたには簡単すぎただろうが。

Rで書いた解答例はPCでは2秒台で実行できたのに、ideoneでは制限時間5秒以内に
終わらなかったので、C++で書いた方を貼る。https://ideone.com/DFDdtr
>>600とほぼ同じだが、掛け算が減る分だけ速いな。

626 名前:デフォルトの名無しさん [2020/01/12(日) 21:27:08.47 ID:xWFTg64o.net]
>>607
R
https://ideone.com/iTihQo

627 名前:デフォルトの名無しさん [2020/01/12(日) 21:44:57.86 ID:qRMFtMw7.net]
>>609
ありがとうございます、そして申し訳ないです

11
11
こうなってたら4と出力してほしくて
連続じゃないですね、隣接といえばよかったかもしれません

縦方向、横方向に1が隣接してる領域のうち最大の領域の1の数を出力して欲しいのです

628 名前:デフォルトの名無しさん [2020/01/12(日) 21:45:02.91 ID:xWFTg64o.net]
>>607
ビット数と乱数の数を別々に指定できるように訂正
https://ideone.com/cYMlMO

629 名前:デフォルトの名無しさん [2020/01/12(日) 21:48:51.97 ID:qRMFtMw7.net]
すみません・・・平にご容赦いただきたく

630 名前:デフォルトの名無しさん [2020/01/12(日) 21:48:57.49 ID:xWFTg64o.net]
>>610
隣接している領域は矩形でなければいけないのか、そうでなくても良いのか。例えば、

1110
0110
0111

は前者なら6個で、後者なら8個になる。

631 名前:デフォルトの名無しさん [2020/01/12(日) 21:52:58.77 ID:qRMFtMw7.net]
>>613
矩形じゃなくていいです8個パターンです!

632 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 04:22:53 ID:5GjUS2iX.net]
質問なら質問スレに
宿題なら宿題スレに

回答を用意してない出題は禁止

633 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 04:47:28.11 ID:5GjUS2iX.net]
昔ながらのPAINTアルゴリズム
検索すれば色々と出てくるよ



634 名前:デフォルトの名無しさん [2020/01/13(月) 05:51:52.90 ID:9cAJpR6a.net]
>>589 J
smoutput 10 10 $ p: <: p: i.100
実行結果
3 5 11 17 31 41 59 67 83 109
127 157 179 191 211 241 277 283 331 353
367 401 431 461 509 547 563 587 599 617
709 739 773 797 859 877 919 967 991 1031
1063 1087 1153 1171 1201 1217 1297 1409 1433 1447
1471 1499 1523 1597 1621 1669 1723 1741 1787 1823
1847 1913 2027 2063 2081 2099 2221 2269 2341 2351
2381 2417 2477 2549 2609 2647 2683 2719 2749 2803
2897 2909 3001 3019 3067 3109 3169 3229 3259 3299
3319 3407 3469 3517 3559 3593 3637 3733 3761 3911

635 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 09:11:38.57 ID:a0NWv3WS.net]
>>607はAOJにあった島の数の問題じゃないの
そうじゃなくてもぷよぷよは大抵コレでしょ

636 名前:デフォルトの名無しさん [2020/01/13(月) 12:20:35.97 ID:AM9JqLhx.net]
>>607
>>615だそうだが、既にほぼ書いてしまっていたから、完成させたのを載せる。
R
https://ideone.com/eECxW1

637 名前:デフォルトの名無しさん [2020/01/13(月) 14:02:08.92 ID:7B3b+WrT.net]
>>607
Java
https://paiza.io/projects/qWcc4EhNNSHq8Jono0wgNg

回答は一応用意してました
みんなUnionFind大好きだと思ったんだけど

638 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 18:55:55.99 ID:7n+Qr/32.net]
>>566
>>569
8087は、第3の実数フォーマット、一時実数を許している点でユニークである。
このフォーマットは、(符号が1ビット)、指数が15ビットで、有効数字が64ビットである。
このフォーマットで格納されている数値は、拡張精度数と言われている。
単精度および倍精度実数と異なり、一時実数は入力および出力値を表わすことを意図していない。
・・・・(中略)・・・・・
それでは、何故80ビットではなく4倍精度すなわち128ビットを一時実数に使わなかったのか。
1つの理由は、4倍精度は少なくとも性能(速度)が半分になることである。
他の理由は、4倍精度を基本フォーマットとして用いると、中間結果のためにより長いフォーマットが必要となることである。
(後略)

・出典
J.F.パーマー・S.P.モース(著)「8087入門」啓学出版 (1985/Feb) 御牧 義 (訳) 

639 名前:2900円
  第2章 データフォーマット、p.19-20
[]
[ここ壊れてます]

640 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 19:02:27.52 ID:7n+Qr/32.net]
John F. Palmer, Ph.D. は8087の設計者、
Stephen P. Morse, Ph.D. は8086の設計者だそうな。

641 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 19:38:23.04 ID:cBNIohlK.net]
x87で遊んでた頃は
将来は4倍精度とか8倍精度とかが当たり前になると思ってたけど
まさか単精度や半精度の時代になるとは

642 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 21:06:38.50 ID:vjAz2zAO.net]
>>581
AVX2 & FMA で作ってみました
https://ideone.com/j44H0T

範囲チェックはしてません

643 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 21:13:25.69 ID:vjAz2zAO.net]
20命令で4個のdoubleのexpm1の計算が出来ます

8パラにしてレイテンシを隠蔽すれば
1個あたり2.5クロックくらい



644 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 12:05:09.83 ID:z1LU+PP1.net]
将来、行列演算もFPU化されると、逆行列の桁落ちが問題になるだろうな・・・・
それを見越して、入出力は64bitのまま内部演算だけ80bitにしたんぢゃね?

645 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 13:12:03.91 ID:BnAK3ul/.net]
思想がどんなに優れてても使われなきゃしょうがない

レジスタが8個しか無いから内部だけ80bitでもほとんど精度改善にならないし
メモリに80bit保存するのも使いにくい

互換性の問題もあって
コンパイラや最適化で値がかわってしまうのも都合が悪い
だから演算にx87命令を使ったとしても内部64bit精度がデフォ

x87全盛期に作られたSuperPIも64bit精度の演算を使ってる
80bit精度で計算すれば速度アップ出来るにも関わらず






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<270KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef