プログラミングのお題スレです。
【出題と回答例】
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
レス数が900を超えています。1000を超えると表示できなくなるよ。
2019/07/28(日) 19:39:57.54ID:832c/ukY
840デフォルトの名無しさん
2019/10/24(木) 09:51:53.30ID:76TAYxNw >>839 Ruby 2.6.0
841デフォルトの名無しさん
2019/10/24(木) 12:04:34.69ID:yRKIAYVV >>839
[6, 5, 3, 2, 1] とかだと結果が間違っている上、nilとか足されてひどいことになるyo?
p [6, 5, 3, 2, 1].partition.with_index{|_, i| i.even?}.then{|e, o| e.zip(o.sort).flatten}
# => [6, 2, 3, 5, 1, nil]
正しくは => [6, 1, 3, 2, 5]
[6, 5, 3, 2, 1] とかだと結果が間違っている上、nilとか足されてひどいことになるyo?
p [6, 5, 3, 2, 1].partition.with_index{|_, i| i.even?}.then{|e, o| e.zip(o.sort).flatten}
# => [6, 2, 3, 5, 1, nil]
正しくは => [6, 1, 3, 2, 5]
842デフォルトの名無しさん
2019/10/24(木) 15:41:34.92ID:gElHX+jG >>832
Kotlin
https://paiza.io/projects/RXWCx9-WsZvakBKGgIo1UA
やり方は >>834 に書かれている通り。
しかし、もっとスマートな方法はないものか?
ありそうだが思い浮かばない。
Kotlin
https://paiza.io/projects/RXWCx9-WsZvakBKGgIo1UA
やり方は >>834 に書かれている通り。
しかし、もっとスマートな方法はないものか?
ありそうだが思い浮かばない。
843デフォルトの名無しさん
2019/10/24(木) 16:54:57.81ID:ZpMPcQ0n844デフォルトの名無しさん
2019/10/24(木) 21:24:20.41ID:YtgvOVKx845デフォルトの名無しさん
2019/10/24(木) 23:20:25.74ID:33G0+sWg >>838
さすがJニキ、さっぱりわからん…
さすがJニキ、さっぱりわからん…
846デフォルトの名無しさん
2019/10/25(金) 00:26:52.21ID:GgLEjF73 アプリ作成したいのですが、素人なのでどなたか相談に乗ってください。
飲み物が入ったコップを定期的に重量を量り、
そのデータを無線で受信してサーバーで記録し
プロットするアプリを作りたいです。
またRaspiなどのPCはなしで作りたいのですが
組み込みPC?を使わないとできませんか?
またこういったアプリに適した言語などありますでしょうか?
飲み物が入ったコップを定期的に重量を量り、
そのデータを無線で受信してサーバーで記録し
プロットするアプリを作りたいです。
またRaspiなどのPCはなしで作りたいのですが
組み込みPC?を使わないとできませんか?
またこういったアプリに適した言語などありますでしょうか?
847デフォルトの名無しさん
2019/10/25(金) 00:32:12.57ID:D+sRag4r プログラム部分はたいしたことがないとおもうのだが
装置、ハードのほうが大事だろ
そもそもプログラムもハード依存するかもしれないし
特に既成品なら
装置、ハードのほうが大事だろ
そもそもプログラムもハード依存するかもしれないし
特に既成品なら
848デフォルトの名無しさん
2019/10/25(金) 00:48:27.50ID:GgLEjF73 ありがとうございます。
ハードウェアの知識が全く無いため困っています。
飼い猫のために水の量を管理してあげたいんです。
下記のような組み合わせで出来そうでしょうか?
ADコンバータ
KKHMF HX711モジュール 秤量センサー 24位精度ADモジュール 圧力センサーモジュール
重量センサー
uxcell 計量ロードセル アルミ合金材質 500g計量 電子天秤 有線 計量センサー
ハードウェアの知識が全く無いため困っています。
飼い猫のために水の量を管理してあげたいんです。
下記のような組み合わせで出来そうでしょうか?
ADコンバータ
KKHMF HX711モジュール 秤量センサー 24位精度ADモジュール 圧力センサーモジュール
重量センサー
uxcell 計量ロードセル アルミ合金材質 500g計量 電子天秤 有線 計量センサー
849デフォルトの名無しさん
2019/10/25(金) 03:57:48.67ID:uJcHRouN やり方わからないんだけど、カメラで撮影して映像解析して量が分かるのであればスマホやタブレット用のアプリでできそうだよね。
(PCに小さいカメラ付けても良いが)。
(PCに小さいカメラ付けても良いが)。
850デフォルトの名無しさん
2019/10/25(金) 04:08:18.02ID:rztx2iSz >>848
適切なスレに移動した方がいいぞ
適切なスレに移動した方がいいぞ
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:ySONYK72レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★2 [ぐれ★]
- 【埼玉】「無免許で高速道路で事故」トラックの追突事故で10代男性死亡 無免許過失運転致死の疑いでトルコ国籍の男(22)逮捕 戸田市 [ぐれ★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 広島・廿日市、おこめ券配布せず 全市民に3000円現金給付へ [どどん★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- アメップ「ジャップ安すぎワロタ。飛行機代込でもフロリダより東京のディズニー行った方が安いまである」 [649381991]
- 【実況】博衣こよりのえちえちチーズケーキを仕込み(雑談あり)🧪★2
- 【悲報】マクベ大佐「いい音色だろ(壺を弾く)」僕副官「統一教会っすかw」マクベ大佐「北宋だ(怒)」 [616817505]
- 【速報】1ポンド210円で日英GDP逆転(残り1.5円)...世界6位の経済規模に転落 [237216734]
- じゃあ何券だったら、日本人は満足したんだよ [452836546]
- 朝日新聞記者「中国軍のレーダー照射はこめかみに銃を突きつけられたのと同じ。僕なら反撃して撃墜してる」高市 [931948549]
