プログラミングのお題スレです。
前スレ
プログラミングのお題スレ Part8©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1444216746/
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
http://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
http://runnable.com/
http://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
探検
プログラミングのお題スレ Part9 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2016/12/01(木) 16:58:30.97ID:gTkHDluD
612デフォルトの名無しさん
2017/11/15(水) 01:21:11.75ID:f03ykBDy613デフォルトの名無しさん
2017/11/15(水) 01:21:50.26ID:f03ykBDy614デフォルトの名無しさん
2017/11/15(水) 01:23:33.97ID:0AqsUHvD 今日は七五三ということで
7,5,3,+,-,×,÷,(),^2を使った式(ただし7,5,3は一個しか使えない)で1から連続でいくつまで数を作れるか
1=3+5-7
2=5-3
3=3
4=(5-3)^2
5=5
6=(7-5)×3
…
7,5,3,+,-,×,÷,(),^2を使った式(ただし7,5,3は一個しか使えない)で1から連続でいくつまで数を作れるか
1=3+5-7
2=5-3
3=3
4=(5-3)^2
5=5
6=(7-5)×3
…
615デフォルトの名無しさん
2017/11/15(水) 06:25:11.32ID:21MTGrxx ^2 もありですか
616デフォルトの名無しさん
2017/11/15(水) 11:19:06.80ID:+wQkBp8E617デフォルトの名無しさん
2017/11/15(水) 11:36:08.43ID:cnBoJhFE >>606
Ruby で、
unpacked = "Hello World!!".unpack("c*")
p unpacked
#=> [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 33]
packed = unpacked.pack('c*')
puts packed
#=> Hello World!!
Ruby で、
unpacked = "Hello World!!".unpack("c*")
p unpacked
#=> [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 33]
packed = unpacked.pack('c*')
puts packed
#=> Hello World!!
618デフォルトの名無しさん
2017/11/15(水) 11:46:46.76ID:f03ykBDy >>616
特殊変数$$から1を作ってそれをもとに2, 4, 8, 16などを作る
"%c"を繰り返したものをあらかじめ作っておき
そこに上記の数字で作った"Hello World!!"の文字コードをsprintフォーマットする
標準出力を表す特殊変数$>に<<メソッドでできた文字列を出力する
あとは 「"" << 文字コード」で「文字コード.chr」と同様の結果が得られるので適宜利用すると便利
特殊変数$$から1を作ってそれをもとに2, 4, 8, 16などを作る
"%c"を繰り返したものをあらかじめ作っておき
そこに上記の数字で作った"Hello World!!"の文字コードをsprintフォーマットする
標準出力を表す特殊変数$>に<<メソッドでできた文字列を出力する
あとは 「"" << 文字コード」で「文字コード.chr」と同様の結果が得られるので適宜利用すると便利
619デフォルトの名無しさん
2017/11/15(水) 12:14:35.50ID:GYwcr8MQ >>617の間抜けさ加減に草
620デフォルトの名無しさん
2017/11/15(水) 13:25:57.72ID:YypYHZ3m621デフォルトの名無しさん
2017/11/15(水) 13:32:50.33ID:+wQkBp8E622デフォルトの名無しさん
2017/11/15(水) 19:03:12.96ID:vzgZy9E8 >>614
5と3を繋げて53にするようなこともしていいの?
5と3を繋げて53にするようなこともしていいの?
623デフォルトの名無しさん
2017/11/16(木) 00:18:43.09ID:/xRbPsNU 計算部は書いたけど、元の表記で何算してるか表記するのが面倒だ。
あと、遅い・・・。
あと、遅い・・・。
624デフォルトの名無しさん
2017/11/16(木) 00:24:47.24ID:IIofg8Am 73/5=14とかは駄目だよね?
625デフォルトの名無しさん
2017/11/16(木) 01:59:04.45ID:/xRbPsNU626デフォルトの名無しさん
2017/11/16(木) 02:00:39.12ID:/xRbPsNU あ、そうだ。
カッコの処理がバグバグだったからカッコ使わなかった。
カッコの処理がバグバグだったからカッコ使わなかった。
627デフォルトの名無しさん
2017/11/16(木) 02:11:42.94ID:/xRbPsNU うーむ・・・。なんていうか。。。
ギブアップだ。Orz
ギブアップだ。Orz
628デフォルトの名無しさん
2017/11/16(木) 11:38:12.54ID:clS3oGAP >>625
「題意理解してない可能性が微レ存」どころじゃねえだろこれww
「題意理解してない可能性が微レ存」どころじゃねえだろこれww
629デフォルトの名無しさん
2017/11/16(木) 14:11:34.74ID:9+S8V57k 整数の範囲でも有理数の範囲でも答えが変わらないからつまらん
一旦非整数を経由しないと作れないのがないとやっぱり...
一旦非整数を経由しないと作れないのがないとやっぱり...
630デフォルトの名無しさん
2017/11/16(木) 15:03:27.99ID:/xRbPsNU >>628
可笑しいところ教えて!
可笑しいところ教えて!
631デフォルトの名無しさん
2017/11/16(木) 15:46:11.61ID:9+S8V57k (3^2)^2 = 3^4
((3^2)^2)^2 = 3^8
だから、3^(2*3) とかやっちゃダメだろ
あと、
3×5÷7 = 15÷7 ≠ 2
((3^2)^2)^2 = 3^8
だから、3^(2*3) とかやっちゃダメだろ
あと、
3×5÷7 = 15÷7 ≠ 2
632デフォルトの名無しさん
2017/11/16(木) 15:59:11.96ID:/xRbPsNU633デフォルトの名無しさん
2017/11/16(木) 16:39:35.92ID:9+S8V57k 有理数クラスを作るのだ
634デフォルトの名無しさん
2017/11/16(木) 17:43:36.30ID:/xRbPsNU 有理数の法則がよくわかってないし、デカイ。
ままならんなー。
ままならんなー。
635デフォルトの名無しさん
2017/11/16(木) 18:03:35.37ID:9+S8V57k (a/b) + (c/d) = (ad + bc) / bd
(a/b) - (c/d) = (ad - bc) / bd
(a/b) * (c/d) = ac / bd
(a/b) / (c/d) = ad / bc
(a/b) = (c/d) <===> ad = bc
分子 : 整数
分母 : 0以外の整数
(a/b) - (c/d) = (ad - bc) / bd
(a/b) * (c/d) = ac / bd
(a/b) / (c/d) = ad / bc
(a/b) = (c/d) <===> ad = bc
分子 : 整数
分母 : 0以外の整数
636デフォルトの名無しさん
2017/11/16(木) 21:25:39.77ID:/xRbPsNU 数学ムズイ。。。
PGも算数で解いてるからな。
PGも算数で解いてるからな。
637デフォルトの名無しさん
2017/11/17(金) 00:16:40.63ID:5DUWZGJy 紙とペンで考えてみたところ
0以外の任意の整数なら3,5,7で表わせるから問題として不適なのでは?
0以外の任意の整数なら3,5,7で表わせるから問題として不適なのでは?
638デフォルトの名無しさん
2017/11/17(金) 00:20:03.76ID:M2EFWWXH 17
639デフォルトの名無しさん
2017/11/17(金) 10:03:52.61ID:oe8UBfUe640デフォルトの名無しさん
2017/11/17(金) 10:44:12.02ID:a6b9gyRQ 17が出来ない
641デフォルトの名無しさん
2017/11/17(金) 19:35:00.15ID:5DUWZGJy ああ、本当だ。17はどうやっても作れないね
しかしこれをどうやってコードで計算すんだろう
^2があるから全探査はできないし
自分は「+または-」をいくつ使うかで場合分けして一個一個可能性を消していったんだけれども
しかしこれをどうやってコードで計算すんだろう
^2があるから全探査はできないし
自分は「+または-」をいくつ使うかで場合分けして一個一個可能性を消していったんだけれども
642デフォルトの名無しさん
2017/11/17(金) 20:04:40.56ID:M2EFWWXH コードはアップしないけど出来たよ
643デフォルトの名無しさん
2017/11/17(金) 20:07:16.14ID:M2EFWWXH 独自有理数クラス
演算回数を1回ずつ増やしていって、
出来た値に対応するフラグをセット
演算回数を1回ずつ増やしていって、
出来た値に対応するフラグをセット
644デフォルトの名無しさん
2017/11/17(金) 20:09:06.68ID:M2EFWWXH 数値をstd::multisetで保持
演算n回目のmultisetをstd::setで保持
演算n回目のmultisetをstd::setで保持
645デフォルトの名無しさん
2017/11/18(土) 17:51:34.79ID:6foiYhRZ ABC4D
-E3FG
-----
77777
A〜G は、1〜9 の異なる数字。
ただし、3, 4 ではない
-E3FG
-----
77777
A〜G は、1〜9 の異なる数字。
ただし、3, 4 ではない
646デフォルトの名無しさん
2017/11/18(土) 17:56:36.72ID:R4dFDjUs はい、そうですか。
647デフォルトの名無しさん
2017/11/18(土) 19:08:28.21ID:8fhXEikQ >>645 Java
2年前の問題と俺の回答
http://peace.2ch.net/test/read.cgi/tech/1429195275/451
を改造したもの (50-54行目と標準入力)
https://ideone.com/2chU62
2年前の問題と俺の回答
http://peace.2ch.net/test/read.cgi/tech/1429195275/451
を改造したもの (50-54行目と標準入力)
https://ideone.com/2chU62
648デフォルトの名無しさん
2017/11/18(土) 19:44:36.57ID:oFg54zrO >>645 Ruby
f = ->a, b, c, d, e, f, g{10000*a + 1000*b + 100*c + d - (1000*e + 10*f + g) == 78037}
[1, 2, 5, 6, 7, 8, 9].permutation{|a| puts "%d%d%d4%d - %d3%d%d == 77777" % a if f[*a]}
#=>87142 - 9365 == 77777
f = ->a, b, c, d, e, f, g{10000*a + 1000*b + 100*c + d - (1000*e + 10*f + g) == 78037}
[1, 2, 5, 6, 7, 8, 9].permutation{|a| puts "%d%d%d4%d - %d3%d%d == 77777" % a if f[*a]}
#=>87142 - 9365 == 77777
649デフォルトの名無しさん
2017/11/18(土) 20:40:01.77ID:6foiYhRZ650デフォルトの名無しさん
2017/11/19(日) 22:39:02.74ID:oda4btU4 500, 100, 50, 10, 5, 1円のすべての種類の硬貨を、1枚以上使って、
合計15枚で750円にする時、10円硬貨は何枚になるか?
A〜E の5人のランナーが走った結果、
完走したのは、1着とべべの2人で、残りの3人は、途中で棄権した
ここで、完走した2人は、必ず真実を言い、
棄権した3人は、必ず嘘をつくものとする
(つまり、事実に対して、真偽値を取る)
A: D は棄権した
B: A は、べべだった
C: E は棄権した
D: C は、べべだった
E: B は完走した
A〜Eがこのように答えた時、1着は誰か?
合計15枚で750円にする時、10円硬貨は何枚になるか?
A〜E の5人のランナーが走った結果、
完走したのは、1着とべべの2人で、残りの3人は、途中で棄権した
ここで、完走した2人は、必ず真実を言い、
棄権した3人は、必ず嘘をつくものとする
(つまり、事実に対して、真偽値を取る)
A: D は棄権した
B: A は、べべだった
C: E は棄権した
D: C は、べべだった
E: B は完走した
A〜Eがこのように答えた時、1着は誰か?
651デフォルトの名無しさん
2017/11/20(月) 01:25:03.39ID:Z32/GYkn 先に答えやそれに至る式がわかっててコードに書き直すだけになっちゃうから
数学的に道筋立てて答えが出せるものはあんまりおもしろくないんだよな
数学的に道筋立てて答えが出せるものはあんまりおもしろくないんだよな
652デフォルトの名無しさん
2017/11/20(月) 03:34:46.27ID:GkhyFhEh アルゴリズムとは、数式の完全コピー
最初に、数式を考えて、その数式が間違っていれば、
撃墜モードでは、そこを突かれて撃墜される
結局、数式の証明が大事。
証明に、勘違いが無いかどうか
最初に、数式を考えて、その数式が間違っていれば、
撃墜モードでは、そこを突かれて撃墜される
結局、数式の証明が大事。
証明に、勘違いが無いかどうか
653デフォルトの名無しさん
2017/11/20(月) 11:24:27.08ID:7i/OQPcC べべってなんぞ?
654デフォルトの名無しさん
2017/11/20(月) 11:38:36.82ID:OJcNabXy >>653
たぶんこの場合は大阪の方言
たぶんこの場合は大阪の方言
655デフォルトの名無しさん
2017/11/20(月) 11:45:30.45ID:7i/OQPcC 俺地方の人間だからわかんない。
656デフォルトの名無しさん
2017/11/20(月) 18:24:16.80ID:Slkhafwt べべって最下位のことじゃないか
どべ
どべ
657デフォルトの名無しさん
2017/11/21(火) 23:50:05.58ID:zUV8sDjk658デフォルトの名無しさん
2017/11/23(木) 10:05:44.85ID:zWeuVerg お題
1から99を表示する
お題:1から999を出力する
ただし0を含む数は除く
1から99を表示する
お題:1から999を出力する
ただし0を含む数は除く
659デフォルトの名無しさん
2017/11/23(木) 10:11:40.40ID:TrZHjzbP >>658
1000.times{|i|p i unless i.to_s[?0]}
1000.times{|i|p i unless i.to_s[?0]}
660デフォルトの名無しさん
2017/11/23(木) 12:15:31.91ID:6AL/1aep661デフォルトの名無しさん
2017/11/23(木) 12:38:42.26ID:KUvGqrz8662デフォルトの名無しさん
2017/11/23(木) 12:40:24.86ID:KUvGqrz8 >>661
すまん、問題よく読んでなかった・・・
すまん、問題よく読んでなかった・・・
663デフォルトの名無しさん
2017/11/23(木) 13:30:23.43ID:jBvfUrCY664デフォルトの名無しさん
2017/11/23(木) 15:45:02.09ID:ys+VuKpG665デフォルトの名無しさん
2017/11/23(木) 16:16:10.88ID:JcpJJmmU >>658
@Mathematica
nListWithoutZero[n_]:=n//
Range[1,#]&//
Map[ToString,#]&//
StringCases[#,RegularExpression["^(?!.*0).*$"]]&//
Flatten;
In[1] := nListWithoutZero[999]
Out[1] = (略)
@Mathematica
nListWithoutZero[n_]:=n//
Range[1,#]&//
Map[ToString,#]&//
StringCases[#,RegularExpression["^(?!.*0).*$"]]&//
Flatten;
In[1] := nListWithoutZero[999]
Out[1] = (略)
666デフォルトの名無しさん
2017/11/23(木) 16:34:54.15ID:2sNCCDGP667デフォルトの名無しさん
2017/11/23(木) 16:42:00.54ID:QTAUjuBR >>658 rust
https://ideone.com/NFrvi7
fn main() {
println!("{:?}", (1..1000).filter(|i| !i.to_string().contains("0")).collect::<Vec<_>>())
}
https://ideone.com/NFrvi7
fn main() {
println!("{:?}", (1..1000).filter(|i| !i.to_string().contains("0")).collect::<Vec<_>>())
}
668デフォルトの名無しさん
2017/11/23(木) 16:46:25.38ID:ys+VuKpG >>658
Kotlin で文字列変換してやる場合
fun main(args: Array<String>) {
for (i in 1..999)
if (! i.toString().contains('0', false))
println(i)
}
数値のままやる場合
fun main(args: Array<String>) {
for (i in 1..999)
if (i % 10 != 0
&& (i < 10 || i / 10 % 10 != 0)
&& (i < 100 || i / 100 % 10 != 0))
println(i)
}
Kotlin で文字列変換してやる場合
fun main(args: Array<String>) {
for (i in 1..999)
if (! i.toString().contains('0', false))
println(i)
}
数値のままやる場合
fun main(args: Array<String>) {
for (i in 1..999)
if (i % 10 != 0
&& (i < 10 || i / 10 % 10 != 0)
&& (i < 100 || i / 100 % 10 != 0))
println(i)
}
669デフォルトの名無しさん
2017/11/23(木) 17:05:13.53ID:fGVRHt7J670デフォルトの名無しさん
2017/11/23(木) 17:08:37.18ID:fGVRHt7J http://rio2016.2ch.net/test/read.cgi/math/1510671832/722
お題:
n^2-1 = m^5
を満たす自然数 n, m は存在するか?
存在するという人と存在しないという人の両方が存在します
お題:
n^2-1 = m^5
を満たす自然数 n, m は存在するか?
存在するという人と存在しないという人の両方が存在します
671デフォルトの名無しさん
2017/11/23(木) 17:18:38.32ID:TrZHjzbP672デフォルトの名無しさん
2017/11/23(木) 18:35:09.23ID:zveldNvP673デフォルトの名無しさん
2017/11/23(木) 19:09:48.15ID:fGVRHt7J >>671
まあ自明な解はさておき、その他は見つからないのが不思議です
まあ自明な解はさておき、その他は見つからないのが不思議です
674デフォルトの名無しさん
2017/11/23(木) 20:21:54.46ID:/mQ4CZGQ >>673
カタラン予想ですでに存在しないことが証明されているのに何が不思議なのかね
カタラン予想ですでに存在しないことが証明されているのに何が不思議なのかね
675デフォルトの名無しさん
2017/11/23(木) 20:24:10.50ID:hjkeK8jf676デフォルトの名無しさん
2017/11/23(木) 20:56:22.87ID:fGVRHt7J677デフォルトの名無しさん
2017/11/23(木) 21:05:28.66ID:uF7hi9HH678668
2017/11/24(金) 06:21:36.98ID:8wyGH9pr >>658
Kotlin数値判定版。こんな風にも書けるなと後で気づいた。
fun f(n: Int): Boolean {
var m = n;
while (m != 0) {
if (m % 10 == 0)
return false
m = m / 10
}
return true
}
fun main(args: Array<String>) {
(1..999).filter(::f).forEach(::println)
}
Kotlin数値判定版。こんな風にも書けるなと後で気づいた。
fun f(n: Int): Boolean {
var m = n;
while (m != 0) {
if (m % 10 == 0)
return false
m = m / 10
}
return true
}
fun main(args: Array<String>) {
(1..999).filter(::f).forEach(::println)
}
679デフォルトの名無しさん
2017/11/24(金) 07:42:25.55ID:MEHEP0+e 存在するしないをプログラミングで証明するのはお題として良くない
680デフォルトの名無しさん
2017/11/24(金) 20:42:02.54ID:G34PGfZh log 2 を2進数表記した時の小数点第 n 位から n + 9 位までを求めよ. (1 ≦ n ≦ 10^10)
cf. log 2 = 0.10110001...
*Sample input*
1
11
10000
31415926
314159265
*Sample output*
1011000101
1100100001
0010110110
1001010110
0111101001
cf. log 2 = 0.10110001...
*Sample input*
1
11
10000
31415926
314159265
*Sample output*
1011000101
1100100001
0010110110
1001010110
0111101001
681デフォルトの名無しさん
2017/11/24(金) 23:31:00.22ID:r53+zpq0 >>680
c++で書いたけど小数第100億位を計算するのに5時間くらいかかりそうorz
c++で書いたけど小数第100億位を計算するのに5時間くらいかかりそうorz
>>681
もう初手に届くとは劇速ですね
もう初手に届くとは劇速ですね
683デフォルトの名無しさん
2017/11/25(土) 06:53:37.62ID:Uo3oYb2P 無条件でlogって書いたら普通自然対数だろ
684デフォルトの名無しさん
2017/11/25(土) 07:01:13.88ID:Uo3oYb2P ライブラリを使えばほとんど何も書かなくて良いけど
どこから書くことを求められてるの?
どこから書くことを求められてるの?
685デフォルトの名無しさん
2017/11/25(土) 07:03:54.53ID:Uo3oYb2P >>679
「良くない」じゃなくて「出来ない」でしょ
「良くない」じゃなくて「出来ない」でしょ
686デフォルトの名無しさん
2017/11/25(土) 07:16:55.64ID:Uo3oYb2P >>684
と思ったけど、普通に全桁計算したら終わらないな
と思ったけど、普通に全桁計算したら終わらないな
687デフォルトの名無しさん
2017/11/25(土) 07:34:12.57ID:Uo3oYb2P Σ { 1 / (2^i × i) }
を使って10^10項位までを42bitくらいだけ計算すれば出来るかな?
1/nの周期性を考えないと計算量的に無理?
10^10が微妙に32bitを越えてるのがイヤだねえ
を使って10^10項位までを42bitくらいだけ計算すれば出来るかな?
1/nの周期性を考えないと計算量的に無理?
10^10が微妙に32bitを越えてるのがイヤだねえ
688デフォルトの名無しさん
2017/11/25(土) 08:21:38.07ID:Uo3oYb2P689デフォルトの名無しさん
2017/11/25(土) 13:10:34.24ID:l6j6CjYT >>375
xxx@xxx-VirtualBox:~/casl$ casl -s -e -i stdlib.casl -i bigint.casl fact.casl
1
1
2
6
24
120
720
5040
40320
362880
途 中 省 略
1405006117752879898543142606244511569936384000000000
60415263063373835637355132068513997507264512000000000
2658271574788448768043625811014615890319638528000000000
119622220865480194561963161495657715064383733760000000000
5502622159812088949850305428800254892961651752960000000000
258623241511168180642964355153611979969197632389120000000000
12413915592536072670862289047373375038521486354677760000000000
608281864034267560872252163321295376887552831379210240000000000
30414093201713378043612608166064768844377641568960512000000000000
暇つぶしに書いてみたけど足算掛算割算しかできない
引算は難しすぎるんで諦めた
xxx@xxx-VirtualBox:~/casl$ casl -s -e -i stdlib.casl -i bigint.casl fact.casl
1
1
2
6
24
120
720
5040
40320
362880
途 中 省 略
1405006117752879898543142606244511569936384000000000
60415263063373835637355132068513997507264512000000000
2658271574788448768043625811014615890319638528000000000
119622220865480194561963161495657715064383733760000000000
5502622159812088949850305428800254892961651752960000000000
258623241511168180642964355153611979969197632389120000000000
12413915592536072670862289047373375038521486354677760000000000
608281864034267560872252163321295376887552831379210240000000000
30414093201713378043612608166064768844377641568960512000000000000
暇つぶしに書いてみたけど足算掛算割算しかできない
引算は難しすぎるんで諦めた
690デフォルトの名無しさん
2017/11/25(土) 16:35:37.76ID:J1zvm3XW バイナリ法で最適化した結果なんとか1時間あれば10^10位は計算できるようになったがまだ縮められるかな
694デフォルトの名無しさん
2017/11/25(土) 22:58:19.91ID:yyAYDlfh 対数関数のマクローリン展開?
そりゃ無理だ
log 0 が定義されてない
そりゃ無理だ
log 0 が定義されてない
695デフォルトの名無しさん
2017/11/25(土) 23:12:41.85ID:FRsJtlII696デフォルトの名無しさん
2017/11/25(土) 23:38:41.06ID:yyAYDlfh >>680
log 2 = Σ_[i=1, 2, ...] { 1 / (2^i × i) }
冪剰余
でいける気がしてきた
しばらく暇がない
時間が空いたら
アセンブラ & C++ & OpenMP
でやってみる
log 2 = Σ_[i=1, 2, ...] { 1 / (2^i × i) }
冪剰余
でいける気がしてきた
しばらく暇がない
時間が空いたら
アセンブラ & C++ & OpenMP
でやってみる
697デフォルトの名無しさん
2017/11/26(日) 02:33:02.82ID:T275kIwU >>650
(setq aaa '(1 5 10 50 100 500))
(setq ddd 750)
(setq jjj 15)
(defun bbb (ccc iii)
(if (= iii 0)
ccc
(let (eee)
(dolist (fff ccc)
(dolist (ggg aaa)
(when (<= (+ (apply #'+ fff) ggg) ddd)
(push (cons ggg fff) eee))))
(bbb (remove-duplicates (mapcar (lambda (x) (sort (copy-seq x) #'<)) eee) :test 'equal) (1- iii)))))
(let* ((kkk (bbb '((0)) jjj))
(lll (mapcar (lambda (x) (remove 0 x)) kkk)))
(remove-if-not (lambda (x) (and
(= (apply #'+ x) ddd)
(= (length x) jjj)
(= (length (remove-duplicates x)) (length aaa))
)) lll))
((1 1 1 1 1 5 5 5 10 10 10 50 50 100 500))
(setq aaa '(1 5 10 50 100 500))
(setq ddd 750)
(setq jjj 15)
(defun bbb (ccc iii)
(if (= iii 0)
ccc
(let (eee)
(dolist (fff ccc)
(dolist (ggg aaa)
(when (<= (+ (apply #'+ fff) ggg) ddd)
(push (cons ggg fff) eee))))
(bbb (remove-duplicates (mapcar (lambda (x) (sort (copy-seq x) #'<)) eee) :test 'equal) (1- iii)))))
(let* ((kkk (bbb '((0)) jjj))
(lll (mapcar (lambda (x) (remove 0 x)) kkk)))
(remove-if-not (lambda (x) (and
(= (apply #'+ x) ddd)
(= (length x) jjj)
(= (length (remove-duplicates x)) (length aaa))
)) lll))
((1 1 1 1 1 5 5 5 10 10 10 50 50 100 500))
698デフォルトの名無しさん
2017/11/26(日) 02:34:12.86ID:T275kIwU >>650
(setq aaa '(A B C D E))
(defun fff (ddd)
(if (null (cdar ddd))
ddd
(let (eee)
(dolist (jjj ddd)
(let ((bbb (car jjj))
(ccc (cdr jjj)))
(setq eee (append (mapcar (lambda (x) (cons (cons x bbb) (remove x ccc))) ccc) eee))))
(fff eee))))
(defun iii (kkk)
(if (< kkk 2) #'identity #'not))
(let* ((ggg (fff (list (cons nil aaa))))
(hhh (mapcar (lambda (x) (car x)) ggg)))
(remove-if-not (lambda (x) (and (funcall (iii (position 'A x)) (> (position 'D x) 1))
(funcall (iii (position 'B x)) (= (position 'A x) 1))
(funcall (iii (position 'C x)) (> (position 'E x) 1))
(funcall (iii (position 'D x)) (= (position 'C x) 1))
(funcall (iii (position 'E x)) (< (position 'B x) 2)))) hhh))
((D C B E A) (D C E B A) (D C A E B) (D C E A B) (D C A B E) (D C B A E))
(setq aaa '(A B C D E))
(defun fff (ddd)
(if (null (cdar ddd))
ddd
(let (eee)
(dolist (jjj ddd)
(let ((bbb (car jjj))
(ccc (cdr jjj)))
(setq eee (append (mapcar (lambda (x) (cons (cons x bbb) (remove x ccc))) ccc) eee))))
(fff eee))))
(defun iii (kkk)
(if (< kkk 2) #'identity #'not))
(let* ((ggg (fff (list (cons nil aaa))))
(hhh (mapcar (lambda (x) (car x)) ggg)))
(remove-if-not (lambda (x) (and (funcall (iii (position 'A x)) (> (position 'D x) 1))
(funcall (iii (position 'B x)) (= (position 'A x) 1))
(funcall (iii (position 'C x)) (> (position 'E x) 1))
(funcall (iii (position 'D x)) (= (position 'C x) 1))
(funcall (iii (position 'E x)) (< (position 'B x) 2)))) hhh))
((D C B E A) (D C E B A) (D C A E B) (D C E A B) (D C A B E) (D C B A E))
>>694
いやいや
https://ja.wikipedia.org/wiki/%E5%AF%BE%E6%95%B0
log(1-x) = - Σ((1/n)x^n) に x = -1 を機械的に代入しました、収束半径外ですが、この値は正しいらしい。
いやいや
https://ja.wikipedia.org/wiki/%E5%AF%BE%E6%95%B0
log(1-x) = - Σ((1/n)x^n) に x = -1 を機械的に代入しました、収束半径外ですが、この値は正しいらしい。
700デフォルトの名無しさん
2017/11/26(日) 12:12:20.72ID:ffy1o2uq お題
ASCIIコード表が載っている本をあげよ
ASCIIコード表が載っている本をあげよ
701デフォルトの名無しさん
2017/11/26(日) 12:35:31.87ID:tJzac9f2 >>695
うんCASL
全部で1200行かあ
xxx@xxx-VirtualBox:~/casl$ wc -l stdlib.casl bigint.casl fact.casl
274 stdlib.casl
851 bigint.casl
76 fact.casl
1201 合計
ソースはこういうのが延々続いててずっと眺めてるとゲシュタルト崩壊起こして
何が何だか分からなくなるよ
ld gr5,0,gr1
ld gr6,1,gr1
lad gr4,4,gr1
addl gr4,gr0
st gr4,0,gr1
st gr6,1,gr1
ld gr4,=1
st gr4,2,gr1
st gr0,3,gr1
ld gr6,gr1
ld gr1,0,gr1
st gr5,0,gr1
st gr6,1,gr1
xor gr4,gr4
st gr4,2,gr1
lad gr2,-4,gr2
subl gr2,gr0
st gr2,3,gr1
ld gr0,gr3
うんCASL
全部で1200行かあ
xxx@xxx-VirtualBox:~/casl$ wc -l stdlib.casl bigint.casl fact.casl
274 stdlib.casl
851 bigint.casl
76 fact.casl
1201 合計
ソースはこういうのが延々続いててずっと眺めてるとゲシュタルト崩壊起こして
何が何だか分からなくなるよ
ld gr5,0,gr1
ld gr6,1,gr1
lad gr4,4,gr1
addl gr4,gr0
st gr4,0,gr1
st gr6,1,gr1
ld gr4,=1
st gr4,2,gr1
st gr0,3,gr1
ld gr6,gr1
ld gr1,0,gr1
st gr5,0,gr1
st gr6,1,gr1
xor gr4,gr4
st gr4,2,gr1
lad gr2,-4,gr2
subl gr2,gr0
st gr2,3,gr1
ld gr0,gr3
702デフォルトの名無しさん
2017/11/26(日) 12:35:43.37ID:WgExDItE703デフォルトの名無しさん
2017/11/26(日) 12:49:31.90ID:WgExDItE704デフォルトの名無しさん
2017/11/26(日) 13:21:30.43ID:jiBTwXK4 理解はしてないが、出てきたので貼っとく。
指数対数関数等の超越関数の多倍精度計算
本論文では、 指数対数関数の高精度計算として Taylor 展開に BSA 法を使って高速化する方法提案する。
約 1000 桁以下の精度の計算では、 Taylor 展開を使った計算が Sasaki and Kanada[5] によって、様々な計算
法を比較して最も高速であることが示されているので、 計算時間が問題となるのは、 1000 桁以上の精度の
計算である。 ここで提案した Taylor 展開に BSA 法を適用して高速化した方法と Sasaki and Kanda によっ
て提案された方法を 1000 桁を超えた精度で比較し、 その高速性を示した。
211 階乗計算例
10000! の計算を行う。 この計算では、 BSA 法を使うだけでなく、 1600 桁以上の数値に対しては FFT を利用して乗算を行っている。
計算方法 計算時間(msec)
BSA 47
従来の方法 3578
このほか、 三角関数、逆三角関数、双曲線関数など簡単な規則で各項の係数が表現でき、 多くの関数がこの
行列の乗算形式に変形できます。Taylor 展開の係数が簡単な規則で表現できない $\tan x$ が例外的に表現できないだけである。
3 まとめ
指数関数や対数関数の Taylor 展開に BSA 法を適用することによって、 BSA を使わない従来の方法に比べ40 %程度の高速化ができた。
対数関数に対しては、 5000 桁程度の精度で最も高速な計算方法として知られた Sasaki and Kanada の方法を超えることを示した。
http://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1456-24.pdf
指数対数関数等の超越関数の多倍精度計算
本論文では、 指数対数関数の高精度計算として Taylor 展開に BSA 法を使って高速化する方法提案する。
約 1000 桁以下の精度の計算では、 Taylor 展開を使った計算が Sasaki and Kanada[5] によって、様々な計算
法を比較して最も高速であることが示されているので、 計算時間が問題となるのは、 1000 桁以上の精度の
計算である。 ここで提案した Taylor 展開に BSA 法を適用して高速化した方法と Sasaki and Kanda によっ
て提案された方法を 1000 桁を超えた精度で比較し、 その高速性を示した。
211 階乗計算例
10000! の計算を行う。 この計算では、 BSA 法を使うだけでなく、 1600 桁以上の数値に対しては FFT を利用して乗算を行っている。
計算方法 計算時間(msec)
BSA 47
従来の方法 3578
このほか、 三角関数、逆三角関数、双曲線関数など簡単な規則で各項の係数が表現でき、 多くの関数がこの
行列の乗算形式に変形できます。Taylor 展開の係数が簡単な規則で表現できない $\tan x$ が例外的に表現できないだけである。
3 まとめ
指数関数や対数関数の Taylor 展開に BSA 法を適用することによって、 BSA を使わない従来の方法に比べ40 %程度の高速化ができた。
対数関数に対しては、 5000 桁程度の精度で最も高速な計算方法として知られた Sasaki and Kanada の方法を超えることを示した。
http://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1456-24.pdf
706デフォルトの名無しさん
2017/11/26(日) 13:44:48.59ID:jiBTwXK4 とりあえず理解はできた計算方法として、logxの近似値などをaとおいたとき、
logx = a + log(x/e^a)という変形を用いる方法だ。
aが近似値だと、x≒e^aなので良いらしい。
logx = a + log(x/e^a)という変形を用いる方法だ。
aが近似値だと、x≒e^aなので良いらしい。
707デフォルトの名無しさん
2017/11/26(日) 13:58:53.69ID:WgExDItE708デフォルトの名無しさん
2017/11/26(日) 14:20:52.91ID:WgExDItE709デフォルトの名無しさん
2017/11/26(日) 15:04:05.33ID:jiBTwXK4 exp(x)は、(exp(x/k))^k (kは2ベキ)、とするといいらしい。
k=2なら、括弧内を計算したやつ同士の掛け算。
k=2なら、括弧内を計算したやつ同士の掛け算。
>>689
えへへ、調べさせてもらったよw
後半は 42! から 50! までの値だね
この範囲なら、多数桁×ワンレジスタの計算で済みますね
多数桁×多数桁を実装すれば思いっきり褒めてあげるよ、えへへ:−)
えへへ、調べさせてもらったよw
後半は 42! から 50! までの値だね
この範囲なら、多数桁×ワンレジスタの計算で済みますね
多数桁×多数桁を実装すれば思いっきり褒めてあげるよ、えへへ:−)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! ★2 [Ailuropoda melanoleuca★]
- 【LIVE】国分太一 騒動後初の公の場 司法記者クラブで会見 ★2 [ひかり★]
- 生クリームだけの真っ白なクリスマスケーキ 大手メーカーが販売、その理由は…フルーツなしで価格は半額以下に [おっさん友の会★]
- 「ウソだったのか」ネット大混乱 議員の歳費5万円アップ「凍結→成立」報道に…「えっ?」「どうなってんだ」「ビックリ」 [バイト歴50年★]
- 【野球】大谷翔平、日本の今の野球は「全く誰が活躍しているか分からない」「映像見ないようにしている」 [冬月記者★]
- 【元TOKIO】国分太一 騒動を謝罪 原因を説明「自分自身が置かれている状況や立場への自覚が足りなかった」 [Ailuropoda melanoleuca★]
- 【速報】国分太一会見 [115996789]
- 【速報】高市早苗、党首討 [115996789]
- 🏡今は、もう、動かないとうふさんにトドメ👊😅👊💥📛
- (´・ω・`)喉痛い…
- ミヤネ屋、国分太一会見
- ひるおび「国連の常任理事国は中華民国。中華人民共和国は中華民国を正式に引き継いでない」高市 [931948549]
