プログラミングのお題スレです。
【出題と回答例】
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
レス数が950を超えています。1000を超えると書き込みができなくなります。
2019/07/28(日) 19:39:57.54ID:832c/ukY
851デフォルトの名無しさん
2019/10/25(金) 09:43:45.15ID:C/odSq3f センサーの話題などは、Linux 板のラズパイのスレで聞けば?
852デフォルトの名無しさん
2019/10/25(金) 09:56:31.28ID:VVjeWd6A853デフォルトの名無しさん
2019/10/25(金) 11:49:06.01ID:C/odSq3f >>832
Ruby で、
input_ary = [ 6, 5, 4, 3, 2, 1 ]
odd_ary = [ ]; index_ary = [ ]
input_ary.each_with_index do |num, idx|
if num.odd?
odd_ary.push num
index_ary.push idx
end
end
odd_ary.sort! # ソート
# 同時に、複数の配列をループする
index_ary.zip( odd_ary ).each { |idx, num| input_ary[ idx ] = num }
p input_ary
Ruby で、
input_ary = [ 6, 5, 4, 3, 2, 1 ]
odd_ary = [ ]; index_ary = [ ]
input_ary.each_with_index do |num, idx|
if num.odd?
odd_ary.push num
index_ary.push idx
end
end
odd_ary.sort! # ソート
# 同時に、複数の配列をループする
index_ary.zip( odd_ary ).each { |idx, num| input_ary[ idx ] = num }
p input_ary
854デフォルトの名無しさん
2019/10/25(金) 12:30:51.02ID:GgLEjF73 >> 849 , 850, 851, 852
情報ありがとうございます。
スレチだったみたいで申し訳ないです。
センサーありきなので、Raspiは使わないと思うのですが
板覗いてみます。
情報ありがとうございます。
スレチだったみたいで申し訳ないです。
センサーありきなので、Raspiは使わないと思うのですが
板覗いてみます。
855デフォルトの名無しさん
2019/10/25(金) 14:59:52.83ID:ylwTeYJx856デフォルトの名無しさん
2019/10/26(土) 01:38:30.03ID:o5w2ifn2 お題: 端末上で(´・ω・`)を端から端まで移動し、往復させよ
ただし、端についたら(´・ω・`)は増幅し(´・ω・`)(´・ω・`)になる
同様に再び端についたら(´・ω・`)(´・ω・`)は増幅し(´・ω・`)(´・ω・`)(´・ω・`)になる
左右に移動できなくなる又ははみ出す場合は逆に(´・ω・`)を減らしていき、最終的に(´・ω・`)を消滅させよ
ただし、端についたら(´・ω・`)は増幅し(´・ω・`)(´・ω・`)になる
同様に再び端についたら(´・ω・`)(´・ω・`)は増幅し(´・ω・`)(´・ω・`)(´・ω・`)になる
左右に移動できなくなる又ははみ出す場合は逆に(´・ω・`)を減らしていき、最終的に(´・ω・`)を消滅させよ
857デフォルトの名無しさん
2019/10/26(土) 06:24:17.44ID:2eoY+VbT お題: Unicode 1 文字を与えると East Asian Width に従った属性値を返す関数を作成し、その関数に対して任意の文字を与えてテストするプログラムを作れ。
返す属性値の F, H, W, Na, A, N は文字列でも良いし対応する数値でも良いし enum のような(またはCなら #define されている)名前でも良い。
East Asian Width の一覧は下記URLのテキストの内容を使用する。これを最初に読んで初期化するように作っても良いし、最初からプログラムに適した形式で埋め込まれていても良い。
http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt
参考: 東アジアの文字幅
https://ja.wikipedia.org/wiki/%E6%9D%B1%E3%82%A2%E3%82%B8%E3%82%A2%E3%81%AE%E6%96%87%E5%AD%97%E5%B9%85
返す属性値の F, H, W, Na, A, N は文字列でも良いし対応する数値でも良いし enum のような(またはCなら #define されている)名前でも良い。
East Asian Width の一覧は下記URLのテキストの内容を使用する。これを最初に読んで初期化するように作っても良いし、最初からプログラムに適した形式で埋め込まれていても良い。
http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt
参考: 東アジアの文字幅
https://ja.wikipedia.org/wiki/%E6%9D%B1%E3%82%A2%E3%82%B8%E3%82%A2%E3%81%AE%E6%96%87%E5%AD%97%E5%B9%85
858デフォルトの名無しさん
2019/10/26(土) 07:11:59.41ID:I0XoRu/q お題:>>832 に「偶数要素は2で割って降順ソート」という要件を追加してください
すでに回答済みの場合は最少限の変更でのご対応で腕(もしくは言語のポテンシャル)を見せてください
すでに回答済みの場合は最少限の変更でのご対応で腕(もしくは言語のポテンシャル)を見せてください
859デフォルトの名無しさん
2019/10/26(土) 07:27:04.95ID:I0XoRu/q860デフォルトの名無しさん
2019/10/26(土) 11:01:29.07ID:/Rj6VhaF >>832 Pharo/Squeak Smalltalk
| fn |
fn := [:arr |
| sortedOdds |
sortedOdds := (arr select: #odd) sort readStream.
arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [x]]
].
fn value: #(6 5 4 3 2 1) "=> #(6 1 4 3 2 5) "
>>835
| fn |
fn := [:arr |
| sortedOdds sortedHalfEvens |
sortedOdds := (arr select: #odd) sort readStream.
sortedHalfEvens := ((arr select: #even) sort reversed / 2) readStream.
arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [sortedHalfEvens next]]
].
fn value: #(0 9 8 4 6 5 1 2 7 3) "=> #(4 1 3 2 1 3 5 0 7 9) "
| fn |
fn := [:arr |
| sortedOdds |
sortedOdds := (arr select: #odd) sort readStream.
arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [x]]
].
fn value: #(6 5 4 3 2 1) "=> #(6 1 4 3 2 5) "
>>835
| fn |
fn := [:arr |
| sortedOdds sortedHalfEvens |
sortedOdds := (arr select: #odd) sort readStream.
sortedHalfEvens := ((arr select: #even) sort reversed / 2) readStream.
arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [sortedHalfEvens next]]
].
fn value: #(0 9 8 4 6 5 1 2 7 3) "=> #(4 1 3 2 1 3 5 0 7 9) "
861デフォルトの名無しさん
2019/10/26(土) 11:03:35.88ID:/Rj6VhaF862デフォルトの名無しさん
2019/10/26(土) 11:45:52.80ID:4aRwI3hq >>859 Perl5、最小限でか…
@s = (0, 9, 8, 4, 6, 5, 1, 2, 7, 3);
@ix = grep{$s[$_] & 1} keys @s;
@iy = sort{$s[$a] <=> $s[$b]} @ix;
@s[@ix] = @s[@iy];
@iz = grep{~$s[$_] & 1} keys @s;
@s[@iz] = map{$_ / 2} reverse sort{$a <=> $b} @s[@iz];
use Data::Dump 'dump';
print dump @s;
実行結果
~ $ perl 15_859.pl
(4, 1, 3, 2, 1, 3, 5, 0, 7, 9)
@s = (0, 9, 8, 4, 6, 5, 1, 2, 7, 3);
@ix = grep{$s[$_] & 1} keys @s;
@iy = sort{$s[$a] <=> $s[$b]} @ix;
@s[@ix] = @s[@iy];
@iz = grep{~$s[$_] & 1} keys @s;
@s[@iz] = map{$_ / 2} reverse sort{$a <=> $b} @s[@iz];
use Data::Dump 'dump';
print dump @s;
実行結果
~ $ perl 15_859.pl
(4, 1, 3, 2, 1, 3, 5, 0, 7, 9)
863デフォルトの名無しさん
2019/10/26(土) 12:12:03.02ID:Zgyrlv2c864デフォルトの名無しさん
2019/10/26(土) 12:22:15.14ID:GFiKSQ9h >>856
Porwershell。バージョンによってはプロンプト画面に直接貼り付けると$sの文字列が
化けるので、その場合はファイルに保存して実行。
$s = "('・ω・``)"
$w = $Host.UI.RawUI.WindowSize.Width - 1
$m = [Math]::Floor($w / 10)
foreach ($n in 1..$m + ($m - 1)..0) {
$d = $w - 10 * $n
foreach ($x in (($d..1), (1..$d))[$n % 2]) {
$l = "`r" + " " * $x + $s * $n + " " * ($d - $x)
Write-Host $l -NoNewline
if (!$n) {Write-Host; break}
Sleep -m 20
}
}
Porwershell。バージョンによってはプロンプト画面に直接貼り付けると$sの文字列が
化けるので、その場合はファイルに保存して実行。
$s = "('・ω・``)"
$w = $Host.UI.RawUI.WindowSize.Width - 1
$m = [Math]::Floor($w / 10)
foreach ($n in 1..$m + ($m - 1)..0) {
$d = $w - 10 * $n
foreach ($x in (($d..1), (1..$d))[$n % 2]) {
$l = "`r" + " " * $x + $s * $n + " " * ($d - $x)
Write-Host $l -NoNewline
if (!$n) {Write-Host; break}
Sleep -m 20
}
}
865デフォルトの名無しさん
2019/10/26(土) 13:49:47.32ID:f6JeNzn+ Mathematica12
定義
f1[a_]:=SubsetMap[Sort,a,Position[a,_?OddQ,1]]
f2[a_]:=SubsetMap[ReverseSort[#]/2&,f1[a],Position[a,_?EvenQ,1]]
実行結果
f1[{6,5,4,3,2,1}]
{6,1,4,3,2,5}
f2[{0,9,8,4,6,5,1,2,7,3}]
{4,1,3,2,1,3,5,0,7,9}
定義
f1[a_]:=SubsetMap[Sort,a,Position[a,_?OddQ,1]]
f2[a_]:=SubsetMap[ReverseSort[#]/2&,f1[a],Position[a,_?EvenQ,1]]
実行結果
f1[{6,5,4,3,2,1}]
{6,1,4,3,2,5}
f2[{0,9,8,4,6,5,1,2,7,3}]
{4,1,3,2,1,3,5,0,7,9}
866デフォルトの名無しさん
2019/10/26(土) 17:08:24.41ID:kYj2w42l >>832, >>858 Ruby
f = -> ary {
e, o = ary.partition(&:even?).map(&:sort)
ary.map{|v| v.even? ? v : o.shift}
}
g = -> ary {
e, o = ary.partition(&:even?).map(&:sort)
ary.map{|v| v.even? ? e.pop >> 1 : o.shift}
}
p f[[6, 5, 4, 3, 2, 1]] # => [6, 1, 4, 3, 2, 5]
p g[[0, 9, 8, 4, 6, 5, 1, 2, 7, 3]] # => [4, 1, 3, 2, 1, 3, 5, 0, 7, 9]
f = -> ary {
e, o = ary.partition(&:even?).map(&:sort)
ary.map{|v| v.even? ? v : o.shift}
}
g = -> ary {
e, o = ary.partition(&:even?).map(&:sort)
ary.map{|v| v.even? ? e.pop >> 1 : o.shift}
}
p f[[6, 5, 4, 3, 2, 1]] # => [6, 1, 4, 3, 2, 5]
p g[[0, 9, 8, 4, 6, 5, 1, 2, 7, 3]] # => [4, 1, 3, 2, 1, 3, 5, 0, 7, 9]
867デフォルトの名無しさん
2019/10/26(土) 20:25:43.01ID:XXeS+kK0868デフォルトの名無しさん
2019/10/26(土) 22:02:49.24ID:+YWUVQNg >>856
https://ideone.com/lw7uIj
C++。なんか表示位置ずれるなーと思ったら、「()」これ半角じゃねーか。
そのせいで、プログラムが持ってる長さと表示の長さが合わなかった。
しかし、汚くなった無し、思ったより時間がかかってしまった。
https://ideone.com/lw7uIj
C++。なんか表示位置ずれるなーと思ったら、「()」これ半角じゃねーか。
そのせいで、プログラムが持ってる長さと表示の長さが合わなかった。
しかし、汚くなった無し、思ったより時間がかかってしまった。
869デフォルトの名無しさん
2019/10/26(土) 22:16:30.14ID:FFSD3o8O >>858 octave
https://ideone.com/d5NTlm
>>858 ruby
https://ideone.com/R93NWY
>>858 ocaml
https://ideone.com/RTlP5X
https://ideone.com/d5NTlm
>>858 ruby
https://ideone.com/R93NWY
>>858 ocaml
https://ideone.com/RTlP5X
870デフォルトの名無しさん
2019/10/26(土) 22:21:47.70ID:+YWUVQNg871蟻人間 ◆T6xkBnTXz7B0
2019/10/26(土) 22:38:02.04ID:Q5f3+aYX お題: あるフォルダ(例えばC:\Windows)についてフォルダの階層構造を木構造(tree)を表すテキストとして出力せよ。
インデントでもいい。罫線を使ってもいい。
インデントでもいい。罫線を使ってもいい。
872デフォルトの名無しさん
2019/10/26(土) 22:38:38.76ID:T/HAOzs9 tree
873デフォルトの名無しさん
2019/10/26(土) 22:46:14.97ID:a/Ne+y1n 完
874蟻人間 ◆T6xkBnTXz7B0
2019/10/26(土) 23:33:25.57ID:0HLEEd3+ 熟
875デフォルトの名無しさん
2019/10/26(土) 23:36:46.58ID:Up+ppHZL ト
876デフォルトの名無しさん
2019/10/26(土) 23:56:14.95ID:mT+r0MIT マ
877デフォルトの名無しさん
2019/10/27(日) 01:42:02.89ID:98GTxTrH ホ
878デフォルトの名無しさん
2019/10/27(日) 01:48:49.90ID:hTxWtEZY ー
879デフォルトの名無しさん
2019/10/27(日) 02:14:55.86ID:qZK0Jir5 ク
880デフォルトの名無しさん
2019/10/27(日) 12:00:30.73ID:czi1K5eV >>858-859
PowerShell
$a = 0, 9, 8, 4, 6, 5, 1, 2, 7, 3
$b = 0, 0
$i = 0, 0
$odd = {$_ % 2}
$b[0] = @($a |? {!(&$odd)} |% {$_ / 2} | sort -descending)
$b[1] = @($a |? {&$odd} | sort)
$c = $a |% {$b[(&$odd)][$i[(&$odd)]++]}
"入力: [" + ($a -join ", ") + "]"
"出力: [" + ($c -join ", ") + "]"
PowerShell
$a = 0, 9, 8, 4, 6, 5, 1, 2, 7, 3
$b = 0, 0
$i = 0, 0
$odd = {$_ % 2}
$b[0] = @($a |? {!(&$odd)} |% {$_ / 2} | sort -descending)
$b[1] = @($a |? {&$odd} | sort)
$c = $a |% {$b[(&$odd)][$i[(&$odd)]++]}
"入力: [" + ($a -join ", ") + "]"
"出力: [" + ($c -join ", ") + "]"
881デフォルトの名無しさん
2019/10/27(日) 21:46:52.77ID:JAeIkS65882デフォルトの名無しさん
2019/10/28(月) 14:33:15.95ID:kjzN6NI8883デフォルトの名無しさん
2019/10/28(月) 21:54:57.80ID:UPe4TNxT Common Lisp
>>832
(let* ((l '(6 5 4 3 2 1))
(odds (sort (remove-if-not #'oddp l) #'<)))
(mapcar (lambda (x) (if (oddp x) (pop odds) x)) l))
>>858-859
(let* ((l '(0 9 8 4 6 5 1 2 7 3))
(odds (sort (remove-if-not #'oddp l) #'<))
(evens (sort (remove-if-not #'evenp l) #'>)))
(mapcar (lambda (x) (if (oddp x) (pop odds) (/ (pop evens) 2))) l))
>>832
(let* ((l '(6 5 4 3 2 1))
(odds (sort (remove-if-not #'oddp l) #'<)))
(mapcar (lambda (x) (if (oddp x) (pop odds) x)) l))
>>858-859
(let* ((l '(0 9 8 4 6 5 1 2 7 3))
(odds (sort (remove-if-not #'oddp l) #'<))
(evens (sort (remove-if-not #'evenp l) #'>)))
(mapcar (lambda (x) (if (oddp x) (pop odds) (/ (pop evens) 2))) l))
884蟻人間 ◆T6xkBnTXz7B0
2019/10/28(月) 22:20:53.11ID:9dus/Ppg885デフォルトの名無しさん
2019/10/28(月) 22:33:53.27ID:cHOU2eIF >>871
Powershell。標準のtreeコマンドと違い、システム/隠しフォルダも表示する。
バージョンによってはプロンプト画面に貼り付けると罫線文字が消えてしまうので、
その場合はps1ファイルに保存して実行するか、PowerShell ISEに貼り付ける。
function MyTree($path, $branch)
{
if (!$branch) {$path}
$dir = @(ls -Force -PSPath $path -EV e -EA SilentlyContinue |? {$_.PSIsContainer})
if ($e) {$branch + "::アクセス不可"}
if (!$dir) {return}
0..($last = $dir.Count - 1) |% {
$branch + ("├─", "└─")[$_ -eq $last] + $dir[$_].Name
MyTree $dir[$_].FullName ($branch + ("│ ", " ")[$_ -eq $last])
}
}
MyTree "C:\Windows"
Powershell。標準のtreeコマンドと違い、システム/隠しフォルダも表示する。
バージョンによってはプロンプト画面に貼り付けると罫線文字が消えてしまうので、
その場合はps1ファイルに保存して実行するか、PowerShell ISEに貼り付ける。
function MyTree($path, $branch)
{
if (!$branch) {$path}
$dir = @(ls -Force -PSPath $path -EV e -EA SilentlyContinue |? {$_.PSIsContainer})
if ($e) {$branch + "::アクセス不可"}
if (!$dir) {return}
0..($last = $dir.Count - 1) |% {
$branch + ("├─", "└─")[$_ -eq $last] + $dir[$_].Name
MyTree $dir[$_].FullName ($branch + ("│ ", " ")[$_ -eq $last])
}
}
MyTree "C:\Windows"
886デフォルトの名無しさん
2019/10/28(月) 23:08:40.85ID:F/Wh8ChL >>884
100年前からあるよ
100年前からあるよ
887デフォルトの名無しさん
2019/10/28(月) 23:13:15.22ID:uBs49FGp 色わけもされているのが良くあり、たいへん見やすい
888蟻人間 ◆T6xkBnTXz7B0
2019/10/29(火) 01:01:17.43ID:CdNgVa0z お題: 平面(0, 0)-(100,100)上に点を100個、配置する。k-means法を用いて点の集合を3つのグループに分け、それらを図示せよ。
889デフォルトの名無しさん
2019/10/29(火) 08:42:30.06ID:CowX2GWO >>858-859
Ruby で、
input_ary = [ 0, 9, 8, 4, 6, 5, 1, 2, 7, 3 ]
even_ary, odd_ary = input_ary.partition( &:even? ) # 偶数・奇数配列
odd_ary.sort! # 奇数要素をソート
# 偶数要素は、2で割って降順ソート
even_ary.map! { |num| num / 2 }
even_ary.sort!
even_ary.reverse!
p results = input_ary.map { |num| num.even? ? even_ary.shift : odd_ary.shift } # 偶数・奇数
Ruby で、
input_ary = [ 0, 9, 8, 4, 6, 5, 1, 2, 7, 3 ]
even_ary, odd_ary = input_ary.partition( &:even? ) # 偶数・奇数配列
odd_ary.sort! # 奇数要素をソート
# 偶数要素は、2で割って降順ソート
even_ary.map! { |num| num / 2 }
even_ary.sort!
even_ary.reverse!
p results = input_ary.map { |num| num.even? ? even_ary.shift : odd_ary.shift } # 偶数・奇数
890デフォルトの名無しさん
2019/10/29(火) 11:11:57.21ID:8fHMSau6 やっぱり初心者にはまず黒い画面のCUIからやらせたほうがいいな
891デフォルトの名無しさん
2019/10/29(火) 18:19:47.29ID:BWleRN1J 設定で白い画面にすると心が和らぐかも知れない
892デフォルトの名無しさん
2019/10/29(火) 18:42:27.40ID:plxF2L4V 目がクラッシュ
893デフォルトの名無しさん
2019/10/29(火) 21:04:32.22ID:OodB9NB8 日本標準時2100に起動し、Web上から文字列「惣流・アスカ・ラングレー」を含む.jpgファイルもしくは.jpegあるいは.pingファイルをC:秘蔵に1GB分保存するコードを教えてください
894デフォルトの名無しさん
2019/10/29(火) 21:19:03.11ID:zdS42c06 式波だろオッサン
895デフォルトの名無しさん
2019/10/29(火) 22:05:19.10ID:xXVEd4hK >>893
0 21 * * * sudo less BigWeb | grep アスラン・ザラ > home/C/H_file limit 1GB
0 21 * * * sudo less BigWeb | grep アスラン・ザラ > home/C/H_file limit 1GB
896デフォルトの名無しさん
2019/10/29(火) 22:18:10.10ID:VtVeF5OO >>893
firebird -t0:21:0:0 --everyday --query 惣流・アスカ・ラングレー --suffix "jpg|jpeg|ping" --dst "C:\secret" --limit 1GB
firebird -t0:21:0:0 --everyday --query 惣流・アスカ・ラングレー --suffix "jpg|jpeg|ping" --dst "C:\secret" --limit 1GB
897デフォルトの名無しさん
2019/10/30(水) 00:58:38.18ID:VQ6oDJg7 pingファイルわらた
898デフォルトの名無しさん
2019/10/30(水) 04:42:26.93ID:LML0ucqT アイが隠っている
899デフォルトの名無しさん
2019/11/01(金) 22:31:20.50ID:5BPqTvCN お題: 3^3^3^... のような反復指数を10の反復指数に近似するプログラムを作成しなさい。
入力されるそれぞれの指数は1より大きい実数とします。
計算後の最も右の指数xは 1<x≦10 としてください。
例:
3^3^3^3^3^3 = 10^10^10^10^10^1.099
2.718^2.718^2.718^2.718^7.705 = 10^10^10^10^2.983
(5.0e+50)^(6.0e+60)^(7.0e+70)^(8.0e+80)^(9.0e+90) = 10^10^10^10^10^10^1.968
1.1^1.1^1.1^1.1^1.1 = 1.112
入力されるそれぞれの指数は1より大きい実数とします。
計算後の最も右の指数xは 1<x≦10 としてください。
例:
3^3^3^3^3^3 = 10^10^10^10^10^1.099
2.718^2.718^2.718^2.718^7.705 = 10^10^10^10^2.983
(5.0e+50)^(6.0e+60)^(7.0e+70)^(8.0e+80)^(9.0e+90) = 10^10^10^10^10^10^1.968
1.1^1.1^1.1^1.1^1.1 = 1.112
900デフォルトの名無しさん
2019/11/01(金) 23:58:48.16ID:Yq8XY12s a^n = b^x を解く問題でいいじゃん
902デフォルトの名無しさん
2019/11/02(土) 14:21:37.47ID:ZDjpW1U6903蟻人間 ◆T6xkBnTXz7B0
2019/11/02(土) 16:24:06.83ID:3ZL9CX49 10^1〜10^10で二分探索を繰り返しかな?
904デフォルトの名無しさん
2019/11/02(土) 17:38:05.70ID:q/Mbih9P >>899
https://ideone.com/0Xqylu
C++。あってるか知らんけど、知識を動員して解いてみたんだけど、あってる?
三の3乗を6回やったら、doubleでinfになるので解けねーわ。うわわーん。
https://ideone.com/0Xqylu
C++。あってるか知らんけど、知識を動員して解いてみたんだけど、あってる?
三の3乗を6回やったら、doubleでinfになるので解けねーわ。うわわーん。
905デフォルトの名無しさん
2019/11/02(土) 18:12:47.84ID:41WzS7Cc >>904
コード一切読んでないけどお前のは間違ってると思うよ
コード一切読んでないけどお前のは間違ってると思うよ
906デフォルトの名無しさん
2019/11/02(土) 18:39:57.30ID:q/Mbih9P907デフォルトの名無しさん
2019/11/02(土) 19:40:47.26ID:0iFQzt0L >>899
PowerShellで最初の2例だけ。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = lg ((pow $a[-2] $a[-1]) * (lg $a[-3]) + (lg (lg $a[-4])))
$b = @(10) * ($a.count - 1) + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
PowerShellで最初の2例だけ。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = lg ((pow $a[-2] $a[-1]) * (lg $a[-3]) + (lg (lg $a[-4])))
$b = @(10) * ($a.count - 1) + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
908デフォルトの名無しさん
2019/11/02(土) 21:32:51.49ID:0iFQzt0L >>899
最後の2例にも対応した。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = $a[-1]
foreach ($i in -2..-$a.count) {
if ($k -gt 10) {break}
$k = pow $a[$i] $k
}
if ($i - 1 -ge -$a.count) {$k *= lg $a[$i - 1]}
if ($i - 2 -ge -$a.count) {$k += lg (lg $a[$i - 2])}
while ($k -gt 10) {
$k = lg $k
$i++
}
if ($i += $a.count) {$i++}
$b = @(10) * $i + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
tetrconv (5.0e50, 6.0e60, 7.0e70, 8.0e80, 9.0e90)
tetrconv (@(1.1) * 5)
最後の2例にも対応した。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = $a[-1]
foreach ($i in -2..-$a.count) {
if ($k -gt 10) {break}
$k = pow $a[$i] $k
}
if ($i - 1 -ge -$a.count) {$k *= lg $a[$i - 1]}
if ($i - 2 -ge -$a.count) {$k += lg (lg $a[$i - 2])}
while ($k -gt 10) {
$k = lg $k
$i++
}
if ($i += $a.count) {$i++}
$b = @(10) * $i + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
tetrconv (5.0e50, 6.0e60, 7.0e70, 8.0e80, 9.0e90)
tetrconv (@(1.1) * 5)
909デフォルトの名無しさん
2019/11/03(日) 00:32:05.95ID:ORedds2P 偶数の場合は半分に、奇数の場合は3倍して1加算して結果が1になるまでその数値を出力してください。
1まで出力して完了です。
単純だけど、どこまで短く書ける?
1まで出力して完了です。
単純だけど、どこまで短く書ける?
910デフォルトの名無しさん
2019/11/03(日) 00:36:48.03ID:ZBjdhNSI >>909
コラッツ予想はもうおなかいっぱいだわ
コラッツ予想はもうおなかいっぱいだわ
911デフォルトの名無しさん
2019/11/03(日) 12:57:12.82ID:ax9Okew1 コラッて怒れば良いんじゃないかな
912デフォルトの名無しさん
2019/11/03(日) 13:57:01.56ID:mZU6qafh913デフォルトの名無しさん
2019/11/03(日) 15:49:54.73ID:kVBOYkVG914デフォルトの名無しさん
2019/11/03(日) 18:50:15.71ID:6KV8hNPc 縦と横のサイズが与えられるのでアスペクト比を求めよ
915デフォルトの名無しさん
2019/11/03(日) 20:03:15.96ID:PuBKYFzC 比は整数のみ?
916デフォルトの名無しさん
2019/11/03(日) 21:50:08.17ID:rJL4Vpjg >>899
別の入力値 (例えば@(1.7) * 5や@(1.5) * 14) を試してみたら出力値がおかしかったので修正。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = 1
foreach ($i in ($a.count - 1)..0) {
$k = pow $a[$i] $k
if ($k -gt 20) {break}
}
if ($i -ge 1) {$k *= lg $a[$i - 1]}
if ($i -ge 2) {$k += lg (lg $a[$i - 2])}
while ($k -gt 10) {
$k = lg $k
$i++
}
$b = @(10) * $i + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
tetrconv (5.0e+50, 6.0e+60, 7.0e+70, 8.0e+80, 9.0e+90)
tetrconv (@(1.1) * 5)
別の入力値 (例えば@(1.7) * 5や@(1.5) * 14) を試してみたら出力値がおかしかったので修正。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = 1
foreach ($i in ($a.count - 1)..0) {
$k = pow $a[$i] $k
if ($k -gt 20) {break}
}
if ($i -ge 1) {$k *= lg $a[$i - 1]}
if ($i -ge 2) {$k += lg (lg $a[$i - 2])}
while ($k -gt 10) {
$k = lg $k
$i++
}
$b = @(10) * $i + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
tetrconv (5.0e+50, 6.0e+60, 7.0e+70, 8.0e+80, 9.0e+90)
tetrconv (@(1.1) * 5)
917デフォルトの名無しさん
2019/11/04(月) 07:30:04.95ID:T8mOMaiU お題:
m から n までの整数のうち、桁数字の和が s になるものをすべて列挙する
関数を書け。
具体的に:
1 から 100 までの整数のうち、桁数字の和が 12 になるものは、
39、48、57、66、75、84、93 である。
関数の実行例:
f(1, 100, 12) → [39, 48, 57, 66, 75, 84, 93]
m から n までの整数のうち、桁数字の和が s になるものをすべて列挙する
関数を書け。
具体的に:
1 から 100 までの整数のうち、桁数字の和が 12 になるものは、
39、48、57、66、75、84、93 である。
関数の実行例:
f(1, 100, 12) → [39, 48, 57, 66, 75, 84, 93]
918デフォルトの名無しさん
2019/11/04(月) 10:20:33.30ID:xKwnPcPn 数列和好きだね これで何回目だ?
数列和求めて何か嬉しいのか? 簡易計算ミスを防げるとか
数列和求めて何か嬉しいのか? 簡易計算ミスを防げるとか
919デフォルトの名無しさん
2019/11/04(月) 10:51:39.60ID:FzGFhotx920デフォルトの名無しさん
2019/11/04(月) 12:37:41.26ID:7wrIz40y921デフォルトの名無しさん
2019/11/04(月) 14:30:03.94ID:obVJwnOe922デフォルトの名無しさん
2019/11/04(月) 19:33:38.63ID:xKwnPcPn タイポ
数字和 >744 などにでてくるやつ
数字和 >744 などにでてくるやつ
923デフォルトの名無しさん
2019/11/04(月) 19:35:11.53ID:6jo2x8my >>917
PowerShellで単純に書けば
function f($a, $b, $s) {$a..$b |? {(iex ([char[]]"$_" -join "+")) -eq $s}}
f 1 100 12
だが、桁が増えると遅すぎるので、少し工夫すると、
$M = [Math]
function g($s, $n)
{
if ($n -eq 1) {return $s}
$d = $M::pow(10, $n - 1)
for ($i = $M::max(0, $s - 9 * ($n - 1)); $i -le $M::min(9, $s); $i++) {
g ($s - $i) ($n - 1) |% {$d * $i + $_}
}
}
function f($a, $b, $s)
{
g $s ($M::ceiling($M::log10($b))) |? {$_ -ge $a -and $_ -le $b}
}
f 1 10000000 12
PowerShellで単純に書けば
function f($a, $b, $s) {$a..$b |? {(iex ([char[]]"$_" -join "+")) -eq $s}}
f 1 100 12
だが、桁が増えると遅すぎるので、少し工夫すると、
$M = [Math]
function g($s, $n)
{
if ($n -eq 1) {return $s}
$d = $M::pow(10, $n - 1)
for ($i = $M::max(0, $s - 9 * ($n - 1)); $i -le $M::min(9, $s); $i++) {
g ($s - $i) ($n - 1) |% {$d * $i + $_}
}
}
function f($a, $b, $s)
{
g $s ($M::ceiling($M::log10($b))) |? {$_ -ge $a -and $_ -le $b}
}
f 1 10000000 12
924デフォルトの名無しさん
2019/11/04(月) 19:36:29.94ID:6jo2x8my 7桁まではまあまあだが8桁以上だと遅いので、Cで書き換えると9桁でも瞬時に終わった。
(出力をファイルにリダイレクトした場合)。Visual Studioでは動作するが、
ideone.comでは変なコンパイラエラーが発生する。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void g(int a, int b, int s, int n, int t, int x)
{
int d, i;
if (n == 0) {
if (t == s && x >= a && x <= b) printf("%d\n", x);
} else {
for (d = i = 1; i < n; i++) d *= 10;
for (i = max(0, (s - t) - 9 * (n - 1)); i <= min(9, s - t); i++) {
g(a, b, s, n - 1, t + i, d * i + x);
}
}
}
void f(int a, int b, int s)
{
g(a, b, s, ceil(log10(b)), 0, 0);
}
int main(void)
{
f(1, 1000000000, 12);
return 0;
}
(出力をファイルにリダイレクトした場合)。Visual Studioでは動作するが、
ideone.comでは変なコンパイラエラーが発生する。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void g(int a, int b, int s, int n, int t, int x)
{
int d, i;
if (n == 0) {
if (t == s && x >= a && x <= b) printf("%d\n", x);
} else {
for (d = i = 1; i < n; i++) d *= 10;
for (i = max(0, (s - t) - 9 * (n - 1)); i <= min(9, s - t); i++) {
g(a, b, s, n - 1, t + i, d * i + x);
}
}
}
void f(int a, int b, int s)
{
g(a, b, s, ceil(log10(b)), 0, 0);
}
int main(void)
{
f(1, 1000000000, 12);
return 0;
}
925デフォルトの名無しさん
2019/11/05(火) 01:53:14.53ID:gnRgB6kn926デフォルトの名無しさん
2019/11/05(火) 20:14:32.31ID:e+hxAdfR お題:グラフの最長距離探索プログラムを作りなさい。分からなければダイクストラの最短距離探索プログラムを改造して作りなさい。
927デフォルトの名無しさん
2019/11/05(火) 20:40:24.45ID:3L71zPwH928デフォルトの名無しさん
2019/11/05(火) 21:02:19.16ID:3L71zPwH 枝じゃなかった。支点だった。
929デフォルトの名無しさん
2019/11/05(火) 22:48:36.11ID:4YhU7TUN >>917
Common Lisp
(defun f (m n s)
(print (loop for i from m to n
if (= s (loop for (j k) = (multiple-value-list (floor i 10)) then (multiple-value-list (floor j 10))
sum k
until (zerop j)))
collect i)))
(f 1 100 12)
Common Lisp
(defun f (m n s)
(print (loop for i from m to n
if (= s (loop for (j k) = (multiple-value-list (floor i 10)) then (multiple-value-list (floor j 10))
sum k
until (zerop j)))
collect i)))
(f 1 100 12)
930デフォルトの名無しさん
2019/11/07(木) 19:42:24.48ID:wJeAdMrJ931デフォルトの名無しさん
2019/11/07(木) 22:47:28.91ID:Iq2Mem9/ >>924を読み返してみたら、1変数減らしてすっきりさせられることに気付いた。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void g(int a, int b, int r, int n, int x)
{
int d, i;
if (n == 0) {
if (r == 0 && x >= a && x <= b) printf("%d\n", x);
} else {
d = pow(10, n - 1);
for (i = max(0, r - 9 * (n - 1)); i <= min(9, r); i++) {
g(a, b, r - i, n - 1, d * i + x);
}
}
}
void f(int a, int b, int s)
{
g(a, b, s, ceil(log10(b)), 0);
}
int main(void)
{
f(1, 1000000000, 12);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void g(int a, int b, int r, int n, int x)
{
int d, i;
if (n == 0) {
if (r == 0 && x >= a && x <= b) printf("%d\n", x);
} else {
d = pow(10, n - 1);
for (i = max(0, r - 9 * (n - 1)); i <= min(9, r); i++) {
g(a, b, r - i, n - 1, d * i + x);
}
}
}
void f(int a, int b, int s)
{
g(a, b, s, ceil(log10(b)), 0);
}
int main(void)
{
f(1, 1000000000, 12);
return 0;
}
932デフォルトの名無しさん
2019/11/10(日) 21:37:46.78ID:OK7x/7YO 文字コードがシフトJISでもUnicodeでも3つ以上の連番となる文字列(最長一致)を、
コード範囲とともにすべて表示せよ。例えば、それらのうちの1つに関する表示は、
824F..8258
FF10..FF19
01234566789
となる。なお、シフトJISには機種依存文字を含んで構わない。
コード範囲とともにすべて表示せよ。例えば、それらのうちの1つに関する表示は、
824F..8258
FF10..FF19
01234566789
となる。なお、シフトJISには機種依存文字を含んで構わない。
933デフォルトの名無しさん
2019/11/10(日) 21:57:20.43ID:uvNl/eaa >>932
何を以って同じ文字とみなすのか定義しろ
何を以って同じ文字とみなすのか定義しろ
934デフォルトの名無しさん
2019/11/10(日) 22:09:53.56ID:OK7x/7YO >>933
それも機種依存で構わない。規格上の厳密さにこだわる必要はない。
それも機種依存で構わない。規格上の厳密さにこだわる必要はない。
935デフォルトの名無しさん
2019/11/10(日) 23:26:27.72ID:EkgZPBq1936デフォルトの名無しさん
2019/11/11(月) 00:44:57.23ID:VmjibYtT バイナリファイルの高速コンペア
937デフォルトの名無しさん
2019/11/11(月) 18:33:43.09ID:KK646YuM >>936
メモリに二つとも呼んでfor回す。意外は難しい気がする。
メモリに二つとも呼んでfor回す。意外は難しい気がする。
938デフォルトの名無しさん
2019/11/11(月) 19:03:14.97ID:KK646YuM939デフォルトの名無しさん
2019/11/11(月) 22:23:08.18ID:ySONYK72940デフォルトの名無しさん
2019/11/11(月) 22:37:18.90ID:hxYpUSvR >>935
正解。Windowsには機種依存文字
8754..875D
2160..2169
TUVWXYZ[\]
などもあるが、機種依存文字を含んでも構わないという出題だったので、
含まなくてもOK。
正解。Windowsには機種依存文字
8754..875D
2160..2169
TUVWXYZ[\]
などもあるが、機種依存文字を含んでも構わないという出題だったので、
含まなくてもOK。
941デフォルトの名無しさん
2019/11/12(火) 05:31:26.51ID:oeG9wEYf942デフォルトの名無しさん
2019/11/12(火) 12:11:13.05ID:BJKXTHw+ >>940 Java
https://ideone.com/611DD5
>>935からCharasetをShift-JISからx-SJIS_0213に変えただけ (Windowsだとx-MS932_0213のほう?)
Shift-JISだと古いやつなんやな
https://ideone.com/611DD5
>>935からCharasetをShift-JISからx-SJIS_0213に変えただけ (Windowsだとx-MS932_0213のほう?)
Shift-JISだと古いやつなんやな
943デフォルトの名無しさん
2019/11/12(火) 21:37:48.42ID:+gLjUv3x >>941
処理データ量が少なく計算効率を考慮しなくて良いなら、Rで簡潔に書ける。
https://ideone.com/cRvth9
効率が求められるなら、Cで二分探索の変形版だな。
https://ideone.com/FXQQjq
処理データ量が少なく計算効率を考慮しなくて良いなら、Rで簡潔に書ける。
https://ideone.com/cRvth9
効率が求められるなら、Cで二分探索の変形版だな。
https://ideone.com/FXQQjq
944デフォルトの名無しさん
2019/11/12(火) 22:38:04.89ID:SyoIDDRx windowsのロングパス対応の重複ファイル検索するコードない?
945デフォルトの名無しさん
2019/11/13(水) 04:07:44.81ID:eXHRJefh >>941 Pharo/Squeak Smalltalk
| fn |
fn := [:m |
| table |
table := #(98 100 198 200 250 298).
table detectMin: [:x | (x - m) abs]
].
fn value: 50. "=> 98 "
fn value: 195. "=> 198 "
| fn |
fn := [:m |
| table |
table := #(98 100 198 200 250 298).
table detectMin: [:x | (x - m) abs]
].
fn value: 50. "=> 98 "
fn value: 195. "=> 198 "
946デフォルトの名無しさん
2019/11/13(水) 14:07:45.70ID:9sxFrKBI947デフォルトの名無しさん
2019/11/13(水) 15:30:27.12ID:EqcpRCSG どう考えても線形探索の方が簡単で速い
1回だけなら
1回だけなら
948デフォルトの名無しさん
2019/11/13(水) 18:24:57.67ID:utJBi2wY >>941 Lua
function f(a, x)
local res = a[1]
for i = 2, #a do
if math.abs(res - x) > math.abs(a[i] - x) then
res = a[i]
end
end
return res
end
function f(a, x)
local res = a[1]
for i = 2, #a do
if math.abs(res - x) > math.abs(a[i] - x) then
res = a[i]
end
end
return res
end
950デフォルトの名無しさん
2019/11/13(水) 20:28:42.98ID:6mLuLK4eレス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★7 [七波羅探題★]
- 【埼玉】「無免許で高速道路で事故」トラックの追突事故で10代男性死亡 無免許過失運転致死の疑いでトルコ国籍の男(22)逮捕 戸田市 [ぐれ★]
