[過去ログ] プログラミングのお題スレ Part15 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
853: 2019/10/25(金)11:49 ID:C/odSq3f(2/2) AAS
>>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
省4
854: 2019/10/25(金)12:30 ID:GgLEjF73(3/3) AAS
>> 849 , 850, 851, 852
情報ありがとうございます。

スレチだったみたいで申し訳ないです。
センサーありきなので、Raspiは使わないと思うのですが
板覗いてみます。
855: 2019/10/25(金)14:59 ID:ylwTeYJx(1) AAS
>>832
外部リンク:ideone.com
C++。クイックソート書けないので謎のソートでお茶を濁す。
856
(2): 2019/10/26(土)01:38 ID:o5w2ifn2(1) AAS
お題: 端末上で(´・ω・`)を端から端まで移動し、往復させよ
ただし、端についたら(´・ω・`)は増幅し(´・ω・`)(´・ω・`)になる
同様に再び端についたら(´・ω・`)(´・ω・`)は増幅し(´・ω・`)(´・ω・`)(´・ω・`)になる
左右に移動できなくなる又ははみ出す場合は逆に(´・ω・`)を減らしていき、最終的に(´・ω・`)を消滅させよ
857: 2019/10/26(土)06:24 ID:2eoY+VbT(1) AAS
お題: Unicode 1 文字を与えると East Asian Width に従った属性値を返す関数を作成し、その関数に対して任意の文字を与えてテストするプログラムを作れ。
返す属性値の F, H, W, Na, A, N は文字列でも良いし対応する数値でも良いし enum のような(またはCなら #define されている)名前でも良い。
East Asian Width の一覧は下記URLのテキストの内容を使用する。これを最初に読んで初期化するように作っても良いし、最初からプログラムに適した形式で埋め込まれていても良い。
外部リンク[txt]:www.unicode.org
参考: 東アジアの文字幅
外部リンク:ja.wikipedia.org
858
(12): 2019/10/26(土)07:11 ID:I0XoRu/q(1/2) AAS
お題:>>832 に「偶数要素は2で割って降順ソート」という要件を追加してください
すでに回答済みの場合は最少限の変更でのご対応で腕(もしくは言語のポテンシャル)を見せてください
859
(5): 2019/10/26(土)07:27 ID:I0XoRu/q(2/2) AAS
>>858
入力例:[0, 9, 8, 4, 6, 5, 1, 2, 7, 3]
出力例:[4, 1, 3, 2, 1, 3, 5, 0, 7, 9]
860
(1): 2019/10/26(土)11:01 ID:/Rj6VhaF(1/2) AAS
>>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 |
省7
861: 2019/10/26(土)11:03 ID:/Rj6VhaF(2/2) AAS
>>860
×835 → ○>>858
862: 2019/10/26(土)11:45 ID:4aRwI3hq(1) AAS
>>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;

実行結果
省2
863: 2019/10/26(土)12:12 ID:Zgyrlv2c(1) AAS
>>832,858
@Mathematica

外部リンク:ideone.com
864: 2019/10/26(土)12:22 ID:GFiKSQ9h(1) AAS
AA省
865: 2019/10/26(土)13:49 ID:f6JeNzn+(1) AAS
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}
866: 2019/10/26(土)17:08 ID:kYj2w42l(1) AAS
>>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]
省1
867: 2019/10/26(土)20:25 ID:XXeS+kK0(1) AAS
>>858 c
外部リンク:ideone.com
868: 2019/10/26(土)22:02 ID:+YWUVQNg(1/2) AAS
>>856
外部リンク:ideone.com
C++。なんか表示位置ずれるなーと思ったら、「()」これ半角じゃねーか。
そのせいで、プログラムが持ってる長さと表示の長さが合わなかった。

しかし、汚くなった無し、思ったより時間がかかってしまった。
869: 2019/10/26(土)22:16 ID:FFSD3o8O(1) AAS
>>858 octave
外部リンク:ideone.com

>>858 ruby
外部リンク:ideone.com

>>858 ocaml
外部リンク:ideone.com
870: 2019/10/26(土)22:21 ID:+YWUVQNg(2/2) AAS
>>858
外部リンク:ideone.com
C++。前のヤツに関数足した。
オーダーが倍になったが改修だとこんなもんだ。
871
(1): 蟻人間 ◆T6xkBnTXz7B0 [age] 2019/10/26(土)22:38 ID:Q5f3+aYX(1) AAS
お題: あるフォルダ(例えばC:\Windows)についてフォルダの階層構造を木構造(tree)を表すテキストとして出力せよ。

インデントでもいい。罫線を使ってもいい。
872: 2019/10/26(土)22:38 ID:T/HAOzs9(1) AAS
tree
873: 2019/10/26(土)22:46 ID:a/Ne+y1n(1) AAS

874: 蟻人間 ◆T6xkBnTXz7B0 [age] 2019/10/26(土)23:33 ID:0HLEEd3+(1) AAS

875: 2019/10/26(土)23:36 ID:Up+ppHZL(1) AAS

876: 2019/10/26(土)23:56 ID:mT+r0MIT(1) AAS

877: 2019/10/27(日)01:42 ID:98GTxTrH(1) AAS

878: 2019/10/27(日)01:48 ID:hTxWtEZY(1) AAS

879: 2019/10/27(日)02:14 ID:qZK0Jir5(1) AAS

880: 2019/10/27(日)12:00 ID:czi1K5eV(1) AAS
>>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 ", ") + "]"
省1
881: 2019/10/27(日)21:46 ID:JAeIkS65(1) AAS
>>858 c
外部リンク:ideone.com
882: 2019/10/28(月)14:33 ID:kjzN6NI8(1) AAS
>>858-859
Haxe で、

外部リンク:try.haxe.org
883: 2019/10/28(月)21:54 ID:UPe4TNxT(1) AAS
AA省
884
(1): 蟻人間 ◆T6xkBnTXz7B0 2019/10/28(月)22:20 ID:9dus/Ppg(1) AAS
Linuxにこんなコマンドあんのかよお?

外部リンク[html]:www.adminweb.jp
885: 2019/10/28(月)22:33 ID:cHOU2eIF(1) AAS
AA省
886: [age] 2019/10/28(月)23:08 ID:F/Wh8ChL(1) AAS
>>884
100年前からあるよ
887: 2019/10/28(月)23:13 ID:uBs49FGp(1) AAS
色わけもされているのが良くあり、たいへん見やすい
888: 蟻人間 ◆T6xkBnTXz7B0 2019/10/29(火)01:01 ID:CdNgVa0z(1) AAS
お題: 平面(0, 0)-(100,100)上に点を100個、配置する。k-means法を用いて点の集合を3つのグループに分け、それらを図示せよ。
889: 2019/10/29(火)08:42 ID:CowX2GWO(1) AAS
>>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!
省1
890: 2019/10/29(火)11:11 ID:8fHMSau6(1) AAS
やっぱり初心者にはまず黒い画面のCUIからやらせたほうがいいな
891: 2019/10/29(火)18:19 ID:BWleRN1J(1) AAS
設定で白い画面にすると心が和らぐかも知れない
892: 2019/10/29(火)18:42 ID:plxF2L4V(1) AAS
目がクラッシュ
893
(2): 2019/10/29(火)21:04 ID:OodB9NB8(1) AAS
日本標準時2100に起動し、Web上から文字列「惣流・アスカ・ラングレー」を含む.jpgファイルもしくは.jpegあるいは.pingファイルをC:秘蔵に1GB分保存するコードを教えてください
894: 2019/10/29(火)21:19 ID:zdS42c06(1) AAS
式波だろオッサン
895: 2019/10/29(火)22:05 ID:xXVEd4hK(1) AAS
>>893
0 21 * * * sudo less BigWeb | grep アスラン・ザラ > home/C/H_file limit 1GB
896: 2019/10/29(火)22:18 ID:VtVeF5OO(1) AAS
>>893
firebird -t0:21:0:0 --everyday --query 惣流・アスカ・ラングレー --suffix "jpg|jpeg|ping" --dst "C:\secret" --limit 1GB
897: 2019/10/30(水)00:58 ID:VQ6oDJg7(1) AAS
pingファイルわらた
898: 2019/10/30(水)04:42 ID:LML0ucqT(1) AAS
アイが隠っている
899
(5): 2019/11/01(金)22:31 ID:5BPqTvCN(1) AAS
お題: 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
900: 2019/11/01(金)23:58 ID:Yq8XY12s(1) AAS
a^n = b^x を解く問題でいいじゃん
901
(1): 蟻人間 ◆T6xkBnTXz7B0 2019/11/02(土)13:25 ID:OyXmLdGY(1) AAS
>>899
演算子^は、左結合、それとも右結合?
902: 2019/11/02(土)14:21 ID:ZDjpW1U6(1) AAS
>>901
右結合です
a^b^c => a^(b^c)
無論 ^はべき乗の演算子です。
903: 蟻人間 ◆T6xkBnTXz7B0 2019/11/02(土)16:24 ID:3ZL9CX49(1) AAS
10^1〜10^10で二分探索を繰り返しかな?
904
(1): 2019/11/02(土)17:38 ID:q/Mbih9P(1/2) AAS
>>899
外部リンク:ideone.com
C++。あってるか知らんけど、知識を動員して解いてみたんだけど、あってる?
三の3乗を6回やったら、doubleでinfになるので解けねーわ。うわわーん。
905
(1): 2019/11/02(土)18:12 ID:41WzS7Cc(1) AAS
>>904
コード一切読んでないけどお前のは間違ってると思うよ
906: 2019/11/02(土)18:39 ID:q/Mbih9P(2/2) AAS
>>905
意味が解らん。
まぁ、いいけど。
907: 2019/11/02(土)19:40 ID:0iFQzt0L(1/2) AAS
>>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 "^")
}
省2
908: 2019/11/02(土)21:32 ID:0iFQzt0L(2/2) AAS
AA省
909
(4): 2019/11/03(日)00:32 ID:ORedds2P(1) AAS
偶数の場合は半分に、奇数の場合は3倍して1加算して結果が1になるまでその数値を出力してください。

1まで出力して完了です。

単純だけど、どこまで短く書ける?
910: 2019/11/03(日)00:36 ID:ZBjdhNSI(1) AAS
>>909
コラッツ予想はもうおなかいっぱいだわ
911: 2019/11/03(日)12:57 ID:ax9Okew1(1) AAS
コラッて怒れば良いんじゃないかな
912: 2019/11/03(日)13:57 ID:mZU6qafh(1) AAS
>>909
外部リンク:ideone.com
C++。ショートコーダじゃないから短めに書いて、24行。
913: 2019/11/03(日)15:49 ID:kVBOYkVG(1) AAS
>>909
C#
外部リンク:ideone.com
短く書こうとする気すらないw
914: 2019/11/03(日)18:50 ID:6KV8hNPc(1) AAS
縦と横のサイズが与えられるのでアスペクト比を求めよ
915: 2019/11/03(日)20:03 ID:PuBKYFzC(1) AAS
比は整数のみ?
916: 2019/11/03(日)21:50 ID:rJL4Vpjg(1) AAS
AA省
917
(6): 2019/11/04(月)07:30 ID:T8mOMaiU(1) AAS
お題:
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
(1): 2019/11/04(月)10:20 ID:xKwnPcPn(1/2) AAS
数列和好きだね これで何回目だ?
数列和求めて何か嬉しいのか? 簡易計算ミスを防げるとか
919: 2019/11/04(月)10:51 ID:FzGFhotx(1) AAS
>>917 perl
なんの捻りもない

use List::Util qw(sum);
print join",",(grep{sum(split//)==12}(1..100));
920: 2019/11/04(月)12:37 ID:7wrIz40y(1) AAS
>>918
数列和?
いきなりオレオレ用語で語られても困るw
921: 2019/11/04(月)14:30 ID:obVJwnOe(1) AAS
>>917
外部リンク:ideone.com
C++。割といつも通りという感じ。
922: 2019/11/04(月)19:33 ID:xKwnPcPn(2/2) AAS
タイポ
数字和 >744 などにでてくるやつ
923: 2019/11/04(月)19:35 ID:6jo2x8my(1/2) AAS
>>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)
省9
924
(1): 2019/11/04(月)19:36 ID:6jo2x8my(2/2) AAS
AA省
925: 2019/11/05(火)01:53 ID:gnRgB6kn(1) AAS
>>909
Kotlin
外部リンク:paiza.io

肝心な部分は短いよな・・・
926
(1): 2019/11/05(火)20:14 ID:e+hxAdfR(1) AAS
お題:グラフの最長距離探索プログラムを作りなさい。分からなければダイクストラの最短距離探索プログラムを改造して作りなさい。
927: 2019/11/05(火)20:40 ID:3L71zPwH(1/2) AAS
>>926
全探索になるから辛い。
X以上になったら打ち切りとかできないし、枝がX個以上なら切るとかもできない。
928: 2019/11/05(火)21:02 ID:3L71zPwH(2/2) AAS
枝じゃなかった。支点だった。
929: 2019/11/05(火)22:48 ID:4YhU7TUN(1) AAS
AA省
930: 2019/11/07(木)19:42 ID:wJeAdMrJ(1) AAS
>>917
Kotlin
外部リンク:paiza.io

ひねりなし。
931: 2019/11/07(木)22:47 ID:Iq2Mem9/(1) AAS
AA省
932
(2): 2019/11/10(日)21:37 ID:OK7x/7YO(1/2) AAS
文字コードがシフトJISでもUnicodeでも3つ以上の連番となる文字列(最長一致)を、
コード範囲とともにすべて表示せよ。例えば、それらのうちの1つに関する表示は、

824F..8258
FF10..FF19
01234566789

となる。なお、シフトJISには機種依存文字を含んで構わない。
933
(1): 2019/11/10(日)21:57 ID:uvNl/eaa(1) AAS
>>932
何を以って同じ文字とみなすのか定義しろ
934: 2019/11/10(日)22:09 ID:OK7x/7YO(2/2) AAS
>>933
それも機種依存で構わない。規格上の厳密さにこだわる必要はない。
935
(2): 2019/11/10(日)23:26 ID:EkgZPBq1(1) AAS
>>932 Java
外部リンク:ideone.com

これでいいのけ?
936
(2): 2019/11/11(月)00:44 ID:VmjibYtT(1) AAS
バイナリファイルの高速コンペア
937
(1): 2019/11/11(月)18:33 ID:KK646YuM(1/2) AAS
>>936
メモリに二つとも呼んでfor回す。意外は難しい気がする。
938: 2019/11/11(月)19:03 ID:KK646YuM(2/2) AAS
>>917
外部リンク:ideone.com
C++。一回解いたけど再考して配列一個潰した。
5秒で5000万位解けそう??
939: 2019/11/11(月)22:23 ID:ySONYK72(1) AAS
>>936
単に一致不一致だけわかればいいのか?
とか
コンペアするファイルは2つだけなのか?
とか

単に2つのファイルの一致不一致を見るだけなら基本>>937の言う通りだと思う
940
(1): 2019/11/11(月)22:37 ID:hxYpUSvR(1) AAS
>>935
正解。Windowsには機種依存文字

8754..875D
2160..2169
TUVWXYZ[\]

などもあるが、機種依存文字を含んでも構わないという出題だったので、
含まなくてもOK。
941
(13): 2019/11/12(火)05:31 ID:oeG9wEYf(1) AAS
お題

スレ立てるまでもない質問はここで 152匹目
2chスレ:tech
の3番の問題を勝手に解く
942: 2019/11/12(火)12:11 ID:BJKXTHw+(1) AAS
>>940 Java
外部リンク:ideone.com

>>935からCharasetをShift-JISからx-SJIS_0213に変えただけ (Windowsだとx-MS932_0213のほう?)
Shift-JISだと古いやつなんやな
943: 2019/11/12(火)21:37 ID:+gLjUv3x(1) AAS
>>941
処理データ量が少なく計算効率を考慮しなくて良いなら、Rで簡潔に書ける。
外部リンク:ideone.com

効率が求められるなら、Cで二分探索の変形版だな。
外部リンク:ideone.com
944
(2): 2019/11/12(火)22:38 ID:SyoIDDRx(1) AAS
windowsのロングパス対応の重複ファイル検索するコードない?
945: 2019/11/13(水)04:07 ID:eXHRJefh(1) AAS
>>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 "
946: 2019/11/13(水)14:07 ID:9sxFrKBI(1) AAS
>>941
外部リンク:ideone.com
C++。多分動いてるけど、境界線系のエラーハンドリングは適当。
947: 2019/11/13(水)15:30 ID:EqcpRCSG(1) AAS
どう考えても線形探索の方が簡単で速い
1回だけなら
948: 2019/11/13(水)18:24 ID:utJBi2wY(1) AAS
>>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
949: ◆QZaw55cn4c 2019/11/13(水)20:03 ID:ESFhNQze(1) AAS
>>944
2chスレ:tech
950: 2019/11/13(水)20:28 ID:6mLuLK4e(1) AAS
>>941 octave
外部リンク:ideone.com
951: 2019/11/13(水)20:40 ID:H1DP2m/6(1) AAS
>>944
>>1002
952: 2019/11/13(水)20:48 ID:CMaH4qd1(1/2) AAS
>>941
C++ならSTLのequal_rangeを使えば、二分探索のコードを自前で書かずに済む。
外部リンク:ideone.com

この例の条件でしか判定しないなら、5つの定数値との比較にするのが一番簡単で
速そうだな。
外部リンク:ideone.com
1-
あと 50 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.090s