プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part14
http://mevius.5ch.net/test/read.cgi/tech/1558168409/
探検
プログラミングのお題スレ Part15
■ このスレッドは過去ログ倉庫に格納されています
2019/07/28(日) 19:39:57.54ID:832c/ukY
202デフォルトの名無しさん
2019/08/28(水) 14:59:27.89ID:iZEqAFR9203デフォルトの名無しさん
2019/08/28(水) 15:03:25.48ID:iZEqAFR9 >>201
文字の列挙のリストには抜けがあるかもしれない。
C++は改行しなくても空白さえあればかける気がするけど。
なお、字数が増えれば増えるほど遅くなる。
とりあえず、実行してみればわかるけど、検索文字を総当たりしてるだけだからね。
んで、コンパイラに投げて通るかどうかのチェック入れないといけないんだ。
文字の列挙のリストには抜けがあるかもしれない。
C++は改行しなくても空白さえあればかける気がするけど。
なお、字数が増えれば増えるほど遅くなる。
とりあえず、実行してみればわかるけど、検索文字を総当たりしてるだけだからね。
んで、コンパイラに投げて通るかどうかのチェック入れないといけないんだ。
204デフォルトの名無しさん
2019/08/28(水) 15:06:25.36ID:iZEqAFR9205デフォルトの名無しさん
2019/08/28(水) 15:59:11.53ID:CKrqMRiB 字数が増えれば増えるほど遅くなる、の遅くなり具合がわかってない気がする
使用する文字の種類を60とした場合、総当たりで毎秒10億個生成できても19年で10文字くらいだよ
使用する文字の種類を60とした場合、総当たりで毎秒10億個生成できても19年で10文字くらいだよ
206デフォルトの名無しさん
2019/08/28(水) 16:09:46.11ID:DKDzG5Os ただの無限の猿定理では?
207デフォルトの名無しさん
2019/08/28(水) 16:18:28.21ID:iZEqAFR9208デフォルトの名無しさん
2019/08/28(水) 16:19:08.51ID:DKDzG5Os 設問が悪い。
自動プログラミングプログラムの出力が不正でなければ良い→コンパイルエラーないしはランタイムエラーを出さない、で良いの?
phpのソースを書き出せば問題ない。
ランダムな文字列を出力し続けても、文字空間が64文字であれば、5文字目以降、毎回1/1073741824で失敗するがそれ以外のケースで自分自身を表示する正しいプログラムになる。
自動プログラミングプログラムの出力が不正でなければ良い→コンパイルエラーないしはランタイムエラーを出さない、で良いの?
phpのソースを書き出せば問題ない。
ランダムな文字列を出力し続けても、文字空間が64文字であれば、5文字目以降、毎回1/1073741824で失敗するがそれ以外のケースで自分自身を表示する正しいプログラムになる。
209デフォルトの名無しさん
2019/08/28(水) 16:42:26.29ID:e0ao7N2r >>200 自動プログラミングが何で数字の羅列なんだよ。
何処がプログラミングだよ。 こんな物どんなコンパイラを通したら意味を持ったプログラムになるんだよ。
何処がプログラミングだよ。 こんな物どんなコンパイラを通したら意味を持ったプログラムになるんだよ。
210デフォルトの名無しさん
2019/08/28(水) 16:43:40.35ID:e0ao7N2r >>200 自分が日本語で説明してみろよ。
211デフォルトの名無しさん
2019/08/28(水) 17:16:03.37ID:iZEqAFR9212デフォルトの名無しさん
2019/08/28(水) 17:16:54.34ID:iZEqAFR9 とりあえず、絶不評なので>>191は終了します。
お付き合いいただきありがとうございました。
お付き合いいただきありがとうございました。
213デフォルトの名無しさん
2019/08/28(水) 17:33:20.06ID:DKDzG5Os ガチでやるなら遺伝的アルゴリズムで遊んだほうが面白そうな話題ではある。
総当たりは分が悪い。
総当たりは分が悪い。
214デフォルトの名無しさん
2019/08/28(水) 18:50:08.98ID:sIwi/wTh みんなまじめに小学生の相手して偉いなぁ
215デフォルトの名無しさん
2019/08/28(水) 19:02:24.38ID:31wF8+fr ネットでプログラムとかコードとかの記事検索して予約語が含まれるセンテンスをコピペするプログラムとかどう?(゚∀゚)<これを自動プログラミングと呼べるかどうか知らんけど
216デフォルトの名無しさん
2019/08/28(水) 19:28:19.63ID:gV1iThk/ >>212
最後まで何をやらせたいのかわからなかった。
最後まで何をやらせたいのかわからなかった。
217デフォルトの名無しさん
2019/08/28(水) 20:50:01.23ID:f9cLfftu218デフォルトの名無しさん
2019/08/29(木) 00:02:26.73ID:gFHz9oC8 まあ例のコテロートルだろうな
219さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/29(木) 00:48:42.64ID:5IzqEHY7 お題: 入力として任意の長さのバイト列(半角アルファベット)が与えられる。入力を左から読み取っていくとき、
読み込まれるバイトの状態遷移を表すデータまたは画像を出力せよ。ただし、初期状態は'^'、終了状態は'$'で
表すものとし、状態遷移図のノードには重複がないものとする。
例)
"AKDAK"
→
^: A.
A: K.
K: D$.
D: A.
$: .
読み込まれるバイトの状態遷移を表すデータまたは画像を出力せよ。ただし、初期状態は'^'、終了状態は'$'で
表すものとし、状態遷移図のノードには重複がないものとする。
例)
"AKDAK"
→
^: A.
A: K.
K: D$.
D: A.
$: .
220デフォルトの名無しさん
2019/08/29(木) 01:15:35.61ID:goo8Bnc2 mousukosikangaetekarasyutudasisiroyokusokotega
222デフォルトの名無しさん
2019/08/29(木) 11:53:46.40ID:DcYjq8Qg nande2do$ga deterunda?
223デフォルトの名無しさん
2019/08/29(木) 13:28:32.46ID:gjTy67rx225デフォルトの名無しさん
2019/08/29(木) 20:21:57.74ID:1SU6nQHs ループまで検出シロっていってるのかいな?
226デフォルトの名無しさん
2019/08/30(金) 00:51:59.58ID:0mnJOhtL >>222
D$は、Dに遷移するか、または、$に遷移するって意味じゃないかな
D$は、Dに遷移するか、または、$に遷移するって意味じゃないかな
227デフォルトの名無しさん
2019/08/30(金) 01:22:20.46ID:Knt08H1L ちゃうやろJK
edgeの終端が二股は有効グラフではNGやで
edgeの終端が二股は有効グラフではNGやで
228デフォルトの名無しさん
2019/08/30(金) 06:09:58.43ID:N+Bub+CM お題
1億以下の同じ数字でできている数(1,22,777など)をすべて表示する
1億以下の同じ数字でできている数(1,22,777など)をすべて表示する
229デフォルトの名無しさん
2019/08/30(金) 06:52:02.20ID:BnHn7wdj230デフォルトの名無しさん
2019/08/30(金) 06:53:07.28ID:BnHn7wdj 0抜けてた悔しい
231デフォルトの名無しさん
2019/08/30(金) 07:10:25.46ID:N+Bub+CM >>228
自然数を対象とします。なので0は対象外。
自然数を対象とします。なので0は対象外。
232デフォルトの名無しさん
2019/08/30(金) 10:00:13.13ID:/ZgOmfmJ >>228 Ruby
p (1...9).flat_map{|i| (1..9).map{|j| j * (10**i - 1) / 9}}
# => [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99,
111, 222, 333, 444, 555, 666, 777, 888, 999, 1111, 2222, 3333,
4444, 5555, 6666, 7777, 8888, 9999, 11111, 22222, 33333, 44444,
55555, 66666, 77777, 88888, 99999, 111111, 222222, 333333,
444444, 555555, 666666, 777777, 888888, 999999, 1111111,
2222222, 3333333, 4444444, 5555555, 6666666, 7777777, 8888888,
9999999, 11111111, 22222222, 33333333, 44444444, 55555555,
66666666, 77777777, 88888888, 99999999]
p (1...9).flat_map{|i| (1..9).map{|j| j * (10**i - 1) / 9}}
# => [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99,
111, 222, 333, 444, 555, 666, 777, 888, 999, 1111, 2222, 3333,
4444, 5555, 6666, 7777, 8888, 9999, 11111, 22222, 33333, 44444,
55555, 66666, 77777, 88888, 99999, 111111, 222222, 333333,
444444, 555555, 666666, 777777, 888888, 999999, 1111111,
2222222, 3333333, 4444444, 5555555, 6666666, 7777777, 8888888,
9999999, 11111111, 22222222, 33333333, 44444444, 55555555,
66666666, 77777777, 88888888, 99999999]
233デフォルトの名無しさん
2019/08/30(金) 10:54:33.08ID:TOyFnU58234デフォルトの名無しさん
2019/08/30(金) 11:37:28.31ID:Kz4M8rdT >>233
評価。
評価。
235デフォルトの名無しさん
2019/08/30(金) 12:26:06.17ID:VkI78Ia/ >>228
同じ数字でできている数って?どういう意味?
同じ数字でできている数って?どういう意味?
236デフォルトの名無しさん
2019/08/30(金) 12:27:00.95ID:VkI78Ia/ あ、わかった。ごめん。
237デフォルトの名無しさん
2019/08/30(金) 13:32:59.48ID:Tn7+4gKU >>228 Pharo/Squeak Smalltalk
(1 to: 8) gather: [:n | (1 to: 9) collect: [:m | (Array new: n withAll: m) polynomialEval: 10]]
#(1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999)
(1 to: 8) gather: [:n | (1 to: 9) collect: [:m | (Array new: n withAll: m) polynomialEval: 10]]
#(1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999)
238デフォルトの名無しさん
2019/08/30(金) 16:39:32.33ID:BnHn7wdj 遅いけど perl5
for (1..100_000_000) { print if s{\A (.) \1* \z}{$& }x }
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999
for (1..100_000_000) { print if s{\A (.) \1* \z}{$& }x }
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999
239デフォルトの名無しさん
2019/08/30(金) 18:36:49.98ID:9N6Bd3Tw >>91
Haskell
main = mapM_ (print.only)
[
[1,1,1,1,2,2,2,3,3,4],
[1,2,3,4,5,5,4,3,2,1],
[3,1,4,1,5,9,2,6,5,3,5]
]
only ns = f [xs | xs <- (group.sort) ns, length xs == 1]
where
f [] = -1
f ([x]:_) = x
ワンライナーも出来るけど、何やってるか読み取り辛い。
only ns = if lst == [] then -1 else (head.head) lst where lst = [xs | xs <- (group.sort) ns, length xs == 1]
Haskell
main = mapM_ (print.only)
[
[1,1,1,1,2,2,2,3,3,4],
[1,2,3,4,5,5,4,3,2,1],
[3,1,4,1,5,9,2,6,5,3,5]
]
only ns = f [xs | xs <- (group.sort) ns, length xs == 1]
where
f [] = -1
f ([x]:_) = x
ワンライナーも出来るけど、何やってるか読み取り辛い。
only ns = if lst == [] then -1 else (head.head) lst where lst = [xs | xs <- (group.sort) ns, length xs == 1]
240デフォルトの名無しさん
2019/08/30(金) 19:34:06.70ID:9dkB4daP >>228
あほ
あほ
241デフォルトの名無しさん
2019/08/30(金) 23:12:37.99ID:aECV+bPz >>228 Perl5
@s = map{$a=$_; map{$_ x $a} 1..9} 1..8;
print "@s";
実行;
~ $ perl 15_228.pl
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333
444 555 666 777 888 999 1111 2222 3333 4444 5555 6666
7777 8888 9999 11111 22222 33333 44444 55555 66666 77777
88888 99999 111111 222222 333333 444444 555555 666666 777777
888888 999999 1111111 2222222 3333333 4444444 5555555 6666666
7777777 8888888 9999999 11111111 22222222 33333333 44444444
55555555 66666666 77777777 88888888 99999999
@s = map{$a=$_; map{$_ x $a} 1..9} 1..8;
print "@s";
実行;
~ $ perl 15_228.pl
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333
444 555 666 777 888 999 1111 2222 3333 4444 5555 6666
7777 8888 9999 11111 22222 33333 44444 55555 66666 77777
88888 99999 111111 222222 333333 444444 555555 666666 777777
888888 999999 1111111 2222222 3333333 4444444 5555555 6666666
7777777 8888888 9999999 11111111 22222222 33333333 44444444
55555555 66666666 77777777 88888888 99999999
242デフォルトの名無しさん
2019/08/30(金) 23:55:50.54ID:olp7cGEF243デフォルトの名無しさん
2019/08/31(土) 05:23:58.92ID:aUqRNM/Y a = 0
for i = 1, 8 do
a = a * 10 + 1
for j = a, a * 9, a do
print(j)
end
end
>>228 Lua
for i = 1, 8 do
a = a * 10 + 1
for j = a, a * 9, a do
print(j)
end
end
>>228 Lua
244デフォルトの名無しさん
2019/08/31(土) 08:18:15.37ID:rAMLyuja >>228
Haskell
import Data.List
main = (print.sort.concat) [[(sum.take a) [x * 10 ^ y | y <- [0..9]] | x <- [1..9]]| a <- [1..8]]
Haskell
import Data.List
main = (print.sort.concat) [[(sum.take a) [x * 10 ^ y | y <- [0..9]] | x <- [1..9]]| a <- [1..8]]
245デフォルトの名無しさん
2019/08/31(土) 08:45:29.92ID:h26kuCJS246デフォルトの名無しさん
2019/08/31(土) 10:03:16.75ID:4OmVCRqb time perl -e 'for (1..100_000_000) { print if s{\A (.) \1* \z}{$& }x }'
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999
real 1m30.031s
user 1m29.046s
sys 0m0.093s
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999
real 1m30.031s
user 1m29.046s
sys 0m0.093s
247デフォルトの名無しさん
2019/08/31(土) 10:56:28.19ID:Z8IDlpBx >>245 Pharo/Squeak Smalltalk
| time ans |
time := [ans := (1 to: 100000000) select: [:n | n asString asSet size = 1]] timeToRun.
^{time. ans}
"Core m3-8100Y => an Array(0:00:02:55.58 #(1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111
222 333 444 555 666 777 888 999 1111 2222 3333 4444 5555 6666 7777 8888 9999 11111
22222 33333 44444 55555 66666 77777 88888 99999 111111 222222 333333 444444 555555
666666 777777 888888 999999 1111111 2222222 3333333 4444444 5555555 6666666 7777777
8888888 9999999 11111111 22222222 33333333 44444444 55555555 66666666 77777777
88888888 99999999)) "
| time ans |
time := [ans := (1 to: 100000000) select: [:n | n asString asSet size = 1]] timeToRun.
^{time. ans}
"Core m3-8100Y => an Array(0:00:02:55.58 #(1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111
222 333 444 555 666 777 888 999 1111 2222 3333 4444 5555 6666 7777 8888 9999 11111
22222 33333 44444 55555 66666 77777 88888 99999 111111 222222 333333 444444 555555
666666 777777 888888 999999 1111111 2222222 3333333 4444444 5555555 6666666 7777777
8888888 9999999 11111111 22222222 33333333 44444444 55555555 66666666 77777777
88888888 99999999)) "
248デフォルトの名無しさん
2019/08/31(土) 10:58:35.47ID:8/I1hpDH >>245 Perl5、1千万以下、CPU: Core i5 M520@2.4GHz
use Time::HiRes qw(gettimeofday tv_interval);
$t0 = [gettimeofday];
for (1..1e8) {
push @s, $_ if /^(.)\1*$/;
}
$elapse = tv_interval($t0, [gettimeofday]);
printf "@s\n%.3f[s]\n", $elapse;
実行結果
~ $ perl 15_245.pl
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999
49.732[s]
use Time::HiRes qw(gettimeofday tv_interval);
$t0 = [gettimeofday];
for (1..1e8) {
push @s, $_ if /^(.)\1*$/;
}
$elapse = tv_interval($t0, [gettimeofday]);
printf "@s\n%.3f[s]\n", $elapse;
実行結果
~ $ perl 15_245.pl
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999
49.732[s]
249デフォルトの名無しさん
2019/08/31(土) 11:35:18.32ID:weQXwxl4 >>245 Java
https://ideone.com/0ddTLO
Pentium G6950@2.8GHz
整数演算: 1,073ms
正規表現: 46,450ms
Ideone
整数演算: 495ms
正規表現: 2,592ms (これだけ1千万以下で計測)
https://ideone.com/0ddTLO
Pentium G6950@2.8GHz
整数演算: 1,073ms
正規表現: 46,450ms
Ideone
整数演算: 495ms
正規表現: 2,592ms (これだけ1千万以下で計測)
250デフォルトの名無しさん
2019/08/31(土) 12:36:03.19ID:E0AleLqQ >>120
Haskell
main = map (\n -> f n 0) [15,93,77,123]
f n a | n < 10 = (n,a)
f n a = f (product [read [x] | x <- show n]) (a + 1)
Haskell
main = map (\n -> f n 0) [15,93,77,123]
f n a | n < 10 = (n,a)
f n a = f (product [read [x] | x <- show n]) (a + 1)
251デフォルトの名無しさん
2019/08/31(土) 12:47:22.94ID:8/I1hpDH >>245 c99、 Core i5 M520@2.4GHz
#include <time.h>
#include <math.h>
#include <stdio.h>
int main() {
int b = 1, n = 1;
clock_t s = clock();
for (int e = 1; e <= 9; e++) {
int j = pow(10, e) - pow(10, e - 1);
for (int i = 1; i <= j; i++) {
if (n == (n / b) * b)
printf("%d ", n);
n++;
}
b *= 10; b += 1;
}
clock_t e = clock();
printf("\n%.3f[s]\n", (double)(e - s)/1e6);
}
実行結果
$ cc -std=c99 -O2 15_245.c -lm
$ time ./a.out
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777
888 999 1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333
44444 55555 66666 77777 88888 99999 111111 222222 333333 444444 555555
666666 777777 888888 999999 1111111 2222222 3333333 4444444 5555555
6666666 7777777 8888888 9999999 11111111 22222222 33333333 44444444
55555555 66666666 77777777 88888888 99999999 111111111 222222222
333333333 444444444 555555555 666666666 777777777 888888888 999999999
3.890[s]
#include <time.h>
#include <math.h>
#include <stdio.h>
int main() {
int b = 1, n = 1;
clock_t s = clock();
for (int e = 1; e <= 9; e++) {
int j = pow(10, e) - pow(10, e - 1);
for (int i = 1; i <= j; i++) {
if (n == (n / b) * b)
printf("%d ", n);
n++;
}
b *= 10; b += 1;
}
clock_t e = clock();
printf("\n%.3f[s]\n", (double)(e - s)/1e6);
}
実行結果
$ cc -std=c99 -O2 15_245.c -lm
$ time ./a.out
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777
888 999 1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333
44444 55555 66666 77777 88888 99999 111111 222222 333333 444444 555555
666666 777777 888888 999999 1111111 2222222 3333333 4444444 5555555
6666666 7777777 8888888 9999999 11111111 22222222 33333333 44444444
55555555 66666666 77777777 88888888 99999999 111111111 222222222
333333333 444444444 555555555 666666666 777777777 888888888 999999999
3.890[s]
252デフォルトの名無しさん
2019/08/31(土) 13:39:39.88ID:u8Io5isX253デフォルトの名無しさん
2019/08/31(土) 13:43:00.43ID:weQXwxl4254デフォルトの名無しさん
2019/08/31(土) 13:44:48.13ID:u8Io5isX ぶー!!!
・・・これが・・・!!!・・・これこそが・・・!!!
・・・だ・・・!!!・・・だそく・・・!!!!
・・・これが・・・!!!・・・これこそが・・・!!!
・・・だ・・・!!!・・・だそく・・・!!!!
255デフォルトの名無しさん
2019/08/31(土) 13:45:31.08ID:u8Io5isX 間に合った。 >>253 サンキュー。
256デフォルトの名無しさん
2019/08/31(土) 15:12:57.30ID:RMcMP/J8 >>245
Haskell ナイーブな方
Atomコア(Celeron N3050@1.6GHz)
1億以下で約31秒
main = print [x | x <- [1..100000000], let (s:ss) = show x, all (== s) ss]
time ./zorome
real 0m31.426s
user 0m31.123s
sys 0m0.248s
ナイーブな方は探すアルゴリズムで、最適化の方(>>244)は数列を作るアルゴリズム。
(1から99999999までの(1桁から8桁までの)ゾロ目を作る)
[
[[1],[1,10],[1,10,100]...],
[[2],[2,20],[2,20,200]...],
...,
[[9],[9,90],[9,90,900]...]]
]
って言う数列を生成して、合計出してフラットにしてソートしてるだけだよ。
(他の言語のも多少の手順の違い(フラット化とソートしないで「合計出した時点で表示」を縦方向に繰り返したり)はあるけど、基本のアルゴリズムとしては同じ)
Haskell ナイーブな方
Atomコア(Celeron N3050@1.6GHz)
1億以下で約31秒
main = print [x | x <- [1..100000000], let (s:ss) = show x, all (== s) ss]
time ./zorome
real 0m31.426s
user 0m31.123s
sys 0m0.248s
ナイーブな方は探すアルゴリズムで、最適化の方(>>244)は数列を作るアルゴリズム。
(1から99999999までの(1桁から8桁までの)ゾロ目を作る)
[
[[1],[1,10],[1,10,100]...],
[[2],[2,20],[2,20,200]...],
...,
[[9],[9,90],[9,90,900]...]]
]
って言う数列を生成して、合計出してフラットにしてソートしてるだけだよ。
(他の言語のも多少の手順の違い(フラット化とソートしないで「合計出した時点で表示」を縦方向に繰り返したり)はあるけど、基本のアルゴリズムとしては同じ)
257デフォルトの名無しさん
2019/09/01(日) 18:40:58.06ID:lGQcNl0x お題: nバイトのデータxをビット列にして出力しなさい
258デフォルトの名無しさん
2019/09/01(日) 19:01:25.42ID:KcbCTlPY259デフォルトの名無しさん
2019/09/01(日) 19:32:51.46ID:VqTK6sxa >>257 Perl5
$n = 24;
@a = map{int rand 255} 1..$n;;
print "@a\n";
@b = map{sprintf'%08b', $_} @a;
$" = '';
print "@b\n
実行例
~ $ perl 15_257.pl
155 105 94 58 85 82 124 6 242 94 119 175 69 205 95 25 79 154 237 248 169 254 46 93
100110110110100101011110001110100101010101010010011111000000011011110010010111100111011110101111010001011100110101011111000110010100111110011010111011011111100010101001111111100010111001011101
$n = 24;
@a = map{int rand 255} 1..$n;;
print "@a\n";
@b = map{sprintf'%08b', $_} @a;
$" = '';
print "@b\n
実行例
~ $ perl 15_257.pl
155 105 94 58 85 82 124 6 242 94 119 175 69 205 95 25 79 154 237 248 169 254 46 93
100110110110100101011110001110100101010101010010011111000000011011110010010111100111011110101111010001011100110101011111000110010100111110011010111011011111100010101001111111100010111001011101
260デフォルトの名無しさん
2019/09/01(日) 19:42:33.97ID:931SdLmv261デフォルトの名無しさん
2019/09/01(日) 20:53:53.13ID:kwhZ+eUh >>259
rand 255 ⇒ 256 の方がヨカタ
rand 255 ⇒ 256 の方がヨカタ
262デフォルトの名無しさん
2019/09/01(日) 21:45:06.97ID:CELgatxy263デフォルトの名無しさん
2019/09/02(月) 02:56:48.97ID:oioFkvSQ >>120
>>125 みたいに、1桁になるまでの変化の様子もリストで渡すようにした。
Haskell
main = mapM put [4,15,93,77,123,277777788888899]
put x = (putStrLn.concat) [show x," -> ",show a,
" loop and value is ",show n,". list = ",show l]
where (l,a,n) = f [] 0 x
f l a n| n < 10 = (reverse l,a,n)
f l a n = f (m:l) (a + 1) m
where m = product [read [x] | x <- show n]
>>125 みたいに、1桁になるまでの変化の様子もリストで渡すようにした。
Haskell
main = mapM put [4,15,93,77,123,277777788888899]
put x = (putStrLn.concat) [show x," -> ",show a,
" loop and value is ",show n,". list = ",show l]
where (l,a,n) = f [] 0 x
f l a n| n < 10 = (reverse l,a,n)
f l a n = f (m:l) (a + 1) m
where m = product [read [x] | x <- show n]
264デフォルトの名無しさん
2019/09/02(月) 02:57:17.93ID:oioFkvSQ out:
4 -> 0 loop and value is 4. list = []
15 -> 1 loop and value is 5. list = [5]
93 -> 3 loop and value is 4. list = [27,14,4]
77 -> 4 loop and value is 8. list = [49,36,18,8]
123 -> 1 loop and value is 6. list = [6]
277777788888899 -> 11 loop and value is 0. list = [4996238671872,438939648,4478976,338688,27648,2688,768,336,54,20,0]
4 -> 0 loop and value is 4. list = []
15 -> 1 loop and value is 5. list = [5]
93 -> 3 loop and value is 4. list = [27,14,4]
77 -> 4 loop and value is 8. list = [49,36,18,8]
123 -> 1 loop and value is 6. list = [6]
277777788888899 -> 11 loop and value is 0. list = [4996238671872,438939648,4478976,338688,27648,2688,768,336,54,20,0]
265デフォルトの名無しさん
2019/09/02(月) 06:37:20.55ID:6t6D41pn >>257 Ruby
n = 16
x = Array.new(n){rand(0x100)}
b = n.times.reduce(0){|s, i| x[~i] * 0x100**i + s}
puts "%p => %0#{n}b" % [x, b]
# => [31, 95, 43, 108, 105, 54, 1, 122, 100, 48, 137, 121, 131, 188, 105, 244] =>
11111010111110010101101101100011010010011011000000001011110100110010000110000100010010111100110000011101111000110100111110100
n = 16
x = Array.new(n){rand(0x100)}
b = n.times.reduce(0){|s, i| x[~i] * 0x100**i + s}
puts "%p => %0#{n}b" % [x, b]
# => [31, 95, 43, 108, 105, 54, 1, 122, 100, 48, 137, 121, 131, 188, 105, 244] =>
11111010111110010101101101100011010010011011000000001011110100110010000110000100010010111100110000011101111000110100111110100
266デフォルトの名無しさん
2019/09/02(月) 06:39:28.02ID:6t6D41pn typo
puts "%p => %0#{n * 8}b" % [x, b]
# => [31, 95, 43, 108, 105, 54, 1, 122, 100, 48, 137, 121, 131, 188, 105, 244] =>
00011111010111110010101101101100011010010011011000000001011110100110010000110000100010010111100110000011101111000110100111110
100
puts "%p => %0#{n * 8}b" % [x, b]
# => [31, 95, 43, 108, 105, 54, 1, 122, 100, 48, 137, 121, 131, 188, 105, 244] =>
00011111010111110010101101101100011010010011011000000001011110100110010000110000100010010111100110000011101111000110100111110
100
267デフォルトの名無しさん
2019/09/02(月) 12:10:04.08ID:rT9Zixkt >>233
勉強になりましたw
勉強になりましたw
268デフォルトの名無しさん
2019/09/02(月) 12:49:28.87ID:YYsNPCXj269デフォルトの名無しさん
2019/09/02(月) 15:10:33.79ID:rT9Zixkt 全滅エンドか!?
270デフォルトの名無しさん
2019/09/02(月) 21:31:28.92ID:qij/0ceW271デフォルトの名無しさん
2019/09/03(火) 02:08:35.68ID:FeqFVaAA >>228
aa=$(echo ^{1..9}\\\{1,\\\}\$\\\| |sed -e "s/ //g; s/\\\|$//;"); seq 1 $((10**8)) |grep -e "$aa"
aa=$(echo ^{1..9}\\\{1,\\\}\$\\\| |sed -e "s/ //g; s/\\\|$//;"); seq 1 $((10**8)) |grep -e "$aa"
272デフォルトの名無しさん
2019/09/03(火) 03:13:14.41ID:4SpqHsfM 数学的な解き方わからず
このx>=3の自然数解を見つける
a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z
このx>=3の自然数解を見つける
a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z
273272
2019/09/03(火) 05:28:10.06ID:VYSmTHvF a=2 b=1で 3^x + 4^y = 5^z
は解無し
は解無し
274デフォルトの名無しさん
2019/09/03(火) 08:27:27.03ID:Sk67xQLY a b は実数? 正の整数?
275デフォルトの名無しさん
2019/09/03(火) 08:38:58.69ID:VYSmTHvF 出てくる文字、a b x y z はすべて自然数、正の整数です
276デフォルトの名無しさん
2019/09/03(火) 08:39:49.44ID:03sYx3ae a > b > 0 なの?
0 > a なら意味ないんだけど
出題者が問題をそもそも理解してなさそう
0 > a なら意味ないんだけど
出題者が問題をそもそも理解してなさそう
277デフォルトの名無しさん
2019/09/03(火) 08:44:26.60ID:VYSmTHvF すべて1以上の整数として、
x>=3、 a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z
を満たすものを見つける
そこでa=2 b=1の場合は解無しがわかっていて
任意のa,bに対して、(a^2 - b^2)^2 + (2ab)^2 = (a^2 + b^2)^2 が成り立つことも判っています
x>=3、 a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z
を満たすものを見つける
そこでa=2 b=1の場合は解無しがわかっていて
任意のa,bに対して、(a^2 - b^2)^2 + (2ab)^2 = (a^2 + b^2)^2 が成り立つことも判っています
278デフォルトの名無しさん
2019/09/03(火) 08:57:07.87ID:VYSmTHvF 指数2だと必ず成立するのはこれだからです
指数3以上で解けるのはどれか、あるかです
ピタゴラス数は無数にある
中学校の数学で習う定理に、「三平方の定理」或いは「ピタゴラスの定理」と呼ばれるものがある。
a^2 + b^2 = c^2 を満たす正の整数の組 (a, b, c) のことを、ピタゴラス数と呼ぶ。
例えば、(3, 4, 5) や (5, 12, 13) などは有名なピタゴラス数である。
ピタゴラス数が無限個存在する
任意の原始的ピタゴラス数 が (|m^2 ? n^2|, 2mn, m^2 + n^2) の形で表せることを示す。
https://nue2004.info/knowledge/knowledge97.htm
指数3以上で解けるのはどれか、あるかです
ピタゴラス数は無数にある
中学校の数学で習う定理に、「三平方の定理」或いは「ピタゴラスの定理」と呼ばれるものがある。
a^2 + b^2 = c^2 を満たす正の整数の組 (a, b, c) のことを、ピタゴラス数と呼ぶ。
例えば、(3, 4, 5) や (5, 12, 13) などは有名なピタゴラス数である。
ピタゴラス数が無限個存在する
任意の原始的ピタゴラス数 が (|m^2 ? n^2|, 2mn, m^2 + n^2) の形で表せることを示す。
https://nue2004.info/knowledge/knowledge97.htm
279デフォルトの名無しさん
2019/09/03(火) 09:27:31.81ID:fMS/rXUz \ / .::::::::::::::::::::::::;;:;;::,ッ、::::::::: ) く 数 す
\ l ,ッィrj,rf'"'"'" lミ::::::: く れ 学 ま
Y ,!ミ::::::: ヽ な 野 な
`ヽ、 | くミ:::::::: ノ い 郎 い
|、__ ャー--_ニゞ `i::::,rく か は
``''ー- ゝ、'l  ゙̄´彑,ヾ }::;! ,ヘ.) ! 帰
゙ソ """"´` 〉 L_ っ
/ i , /| て r
≡=- 〈´ ,,.._ i 't-'゙ | ,へ ,r┘
,、yx=''" `ー{゙ _, -、 ; l レ' ヽr、⌒ヽ'
゙、`--─゙ /! `、
_,,、- ゙、 ー'' / ; `、
-''"_,,、-''" ゙、 /;;' ,' / 、\
-''" / `ー─''ぐ;;;;' ,' ノ
// / ヾ_、=ニ゙
\ l ,ッィrj,rf'"'"'" lミ::::::: く れ 学 ま
Y ,!ミ::::::: ヽ な 野 な
`ヽ、 | くミ:::::::: ノ い 郎 い
|、__ ャー--_ニゞ `i::::,rく か は
``''ー- ゝ、'l  ゙̄´彑,ヾ }::;! ,ヘ.) ! 帰
゙ソ """"´` 〉 L_ っ
/ i , /| て r
≡=- 〈´ ,,.._ i 't-'゙ | ,へ ,r┘
,、yx=''" `ー{゙ _, -、 ; l レ' ヽr、⌒ヽ'
゙、`--─゙ /! `、
_,,、- ゙、 ー'' / ; `、
-''"_,,、-''" ゙、 /;;' ,' / 、\
-''" / `ー─''ぐ;;;;' ,' ノ
// / ヾ_、=ニ゙
280デフォルトの名無しさん
2019/09/03(火) 13:20:54.78ID:SA/JpX4x どう考えてもスレチだよなぁ
必要なのはプログラムじゃなく紙と鉛筆っぽいし
必要なのはプログラムじゃなく紙と鉛筆っぽいし
281デフォルトの名無しさん
2019/09/03(火) 13:43:33.95ID:WMTa8Qij このスレは数学嫌いな奴多いなぁ
べつにちょっとぐらいいいじゃないか
べつにちょっとぐらいいいじゃないか
282デフォルトの名無しさん
2019/09/03(火) 13:52:03.24ID:/IQ7x87c むしろこのスレは本当にコンピューター使わないと解けないような
パズル問題とかの方が解答つかないことが多い
パズル問題とかの方が解答つかないことが多い
283デフォルトの名無しさん
2019/09/03(火) 14:53:42.89ID:R1k47NOJ 掛け算があるので加速的に左の解が増えるので追い付かなくなる予感。
284デフォルトの名無しさん
2019/09/03(火) 15:14:05.99ID:R1k47NOJ285デフォルトの名無しさん
2019/09/03(火) 15:15:29.58ID:R1k47NOJ (a^2 - b^2)^x + (2ab)^y=0
(a^2 + b^2)^z=0
の連立方程式解くとよさそうに見えるが。
解くのむずくて俺は無理。
(a^2 + b^2)^z=0
の連立方程式解くとよさそうに見えるが。
解くのむずくて俺は無理。
286デフォルトの名無しさん
2019/09/03(火) 15:28:15.62ID:03sYx3ae >>285
何かの冗談? それじゃ明らかに解無しなんですが
何かの冗談? それじゃ明らかに解無しなんですが
287デフォルトの名無しさん
2019/09/03(火) 15:31:15.82ID:FbgAnO5f >>257 Ruby
N = 10
X = Random.new.bytes(N)
puts X.unpack('C*').map{|c| '%02X' % c}.join(' '), X.unpack('B*')
結果
82 30 D4 E1 07 32 27 3E A2 E5
10000010001100001101010011100001000001110011001000100111001111101010001011100101
N = 10
X = Random.new.bytes(N)
puts X.unpack('C*').map{|c| '%02X' % c}.join(' '), X.unpack('B*')
結果
82 30 D4 E1 07 32 27 3E A2 E5
10000010001100001101010011100001000001110011001000100111001111101010001011100101
288デフォルトの名無しさん
2019/09/03(火) 15:38:54.45ID:R1k47NOJ289デフォルトの名無しさん
2019/09/03(火) 15:40:16.69ID:03sYx3ae290デフォルトの名無しさん
2019/09/03(火) 15:45:42.09ID:R1k47NOJ 数学ダメなのでセオリー知らないんだけど。マジ解らん。
正直すまんかった。
正直すまんかった。
291デフォルトの名無しさん
2019/09/03(火) 15:47:50.03ID:R1k47NOJ292デフォルトの名無しさん
2019/09/03(火) 15:50:06.71ID:gHL/qcPl293デフォルトの名無しさん
2019/09/03(火) 15:52:04.84ID:R1k47NOJ294デフォルトの名無しさん
2019/09/03(火) 15:56:44.07ID:gHL/qcPl doubleの演算誤差出てるなwwww
295デフォルトの名無しさん
2019/09/03(火) 15:57:29.86ID:R1k47NOJ >>293 直しました。
大きな数で発見できているかな?
大きな数で発見できているかな?
296デフォルトの名無しさん
2019/09/03(火) 16:00:10.37ID:R1k47NOJ いや、精度飛んでて、うまく測れてないな。
297デフォルトの名無しさん
2019/09/03(火) 16:01:59.48ID:gHL/qcPl 演算誤差ではないか 誤差で=になるレベルじゃない
AとB出力してみ?
AとB出力してみ?
298デフォルトの名無しさん
2019/09/03(火) 16:02:55.16ID:R1k47NOJ 多倍長無いと証明には至らないな。
というわけで今回は抜けるわ。
乱文申し訳ない。
というわけで今回は抜けるわ。
乱文申し訳ない。
299デフォルトの名無しさん
2019/09/03(火) 16:03:35.69ID:gHL/qcPl あ、doubleからstd::size_tになってたw
300デフォルトの名無しさん
2019/09/03(火) 16:10:08.37ID:R1k47NOJ 色々弄ってみたけど、これで凍結しておくわ。
すまんかった。
すまんかった。
301デフォルトの名無しさん
2019/09/03(火) 16:42:54.68ID:03sYx3ae■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- ヨッシー、ヘイホー、テレサ ←こいつらwwwwwwwww
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- くそしてかがやけ
- テレビ「地震!津波!高いところへ逃げて!」
